class Widgets extends Component {
constructor(props){
super(props);
this.state = {
accessToken: "",
listAccounts:[],
}
}
componentWillMount(){
this.setState({listAccounts: this.loadAccountsData()})
}
loadAccountsData(){
//return data from server
}
render() {
return (
<Content>
{this.state.listAccounts.map( (Account) => <Account accountData={Account} />)}
</Content>
)
}
}
上面是我的代码的蓝图。我无法在渲染中访问状态? 错误:undefined不是对象(评估&#39; this.state.listAccounts.map&#39;)
答案 0 :(得分:1)
您正在异步请求上设置状态。你需要等到响应回来设置你的状态。
class Widgets extends Component {
constructor(props){
super(props);
this.state = {
accessToken: "",
listAccounts:[],
}
}
componentWillMount(){
this.loadAccountsData();
}
loadAccountsData(){
somerequest().then( (response) => {
this.setState({listAccounts: response});
// or whatever the data is that your accounts are
});
}
render() {
return (
<Content>
{this.state.listAccounts.map( (Account) => <Account accountData={Account} />)}
</Content>
)
}
}
答案 1 :(得分:0)
对我来说,这个问题正在发生,因为我认为Hot Reloading在添加之后没有使用新状态构建。手动重新加载iOS模拟器为我解决了这个问题。