次のコードでこのエラーが表示されます。 "プロパティ名 '未定義の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の 'destructuring'機能です。基本的には 'const data = this.state.data'と同じです。したがって、オブジェクトのフィールドを変数に明示的に割り当てる短いバージョンです。 – cubbuk