2016-11-10 40 views
0
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不是一個對象(評估'this.state.listAccounts.map')ReactNative:undefined不是對象(this.state.listAccounts)

回答

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> 
     ) 
    } 
} 
0

對於我來說,這個問題是怎麼回事,因爲我覺得熱登陸艦並沒有隨着新的國家建立我加入之後。手動重新加載iOS模擬器解決了我的問題。