2017-05-11 12 views
-2

この問題の説明方法はわかりませんが、多分誰かが知っています。今、私はReact-nativeを学び、問題を見つけます。データが最初にレンダリングされた後にコンポーネントにロードされるのはなぜですか?

初めてコンポーネントを開くと、データが表示されませんが、この2回目のデータがロードされた場合は表示されます。

class Followers extends Component { 
    componentWillMount() { 
    const {uid} = this.props.user; 
    this.props.followersFetch({uid}); 
    this.createDataSource(this.props) 
    } 

    componentWillReceiveProps(nextProps) { 
    this.createDataSource(nextProps) 
    } 
    createDataSource({followersList}) { 
    const ds = new ListView.DataSource({ 
     rowHasChanged: (r1, r2) => r1 !== r2 
    }) 
    this.dataSource = ds.cloneWithRows(followersList) 
    } 

    renderRow(follower) { 
    return (<User follower={follower}/>); 

    } 

    render() { 
    return (
     <Container> 
     <Content> 
      <ListView enableEmptySections dataSource={this.dataSource} renderRow={this.renderRow}/> 
     </Content> 
     </Container> 

    ); 
    } 
} 

const mapStateToProps = state => { 
    console.log(state) 
    const {followersList} = state.relation; 
    const {uid} = state.profile; 
    return {uid, followersList} 

} 

export default connect(mapStateToProps, {followersFetch})(Followers); 


I'm trying use ComponentDidMount for sure data is loading but it give me error 

答えて

0

私はfollowersFetch関数は非同期で、長いデータはこのコンポーネント・レンダリングマウント後に到着したので、あなたがしたいと思うよりもかかることを推測します。データを先に取得することをお勧めします。

関連する問題