以下代码给我这个错误:“无法读取未定义的属性'CityName'”。但是当我调试代码时,数据状态仅在第一次渲染时为空,并且在那之后数据已经从API接收到数据。有没有办法强制渲染忽略第一个空状态?状态在第一次渲染时为空
class profile extends Component {
constructor(props) {
super(props);
this.state = {
data :[],
};
}
componentWillMount() {
axios.get(BASE_URL + 'user/' + 1)
.then(response => this.setState({data: response.data.Result}))
.catch(error => console.log(error));
}
render() {
return (
<View>
<Text>{this.state.data.Profile.CityName}</Text>
</View>
);
}
}
非常好,它的工作。但我仍然不明白是什么在做const {data = undefined} = this.state。 – Nima
这是ES6的“解构”功能。本质上它和'const data = this.state.data'是一样的,所以只是将一个对象的字段明确分配给一个变量的较短版本。 – cubbuk