2017-10-01 2 views
0

Essayer de comprendre quelle est la façon de gérer les données dans les composants de réaction.Quelle est la bonne façon d'utiliser State vs Props?

Im en train d'essayer ces deux façons:

A) L'Etat Way

componentWillReceiveProps(nextProps) { 
if (!nextProps.allPostsQuery.loading && !nextProps.allPostsQuery.error) { 
    this.setState({ 
    postList: nextProps.allPostsQuery.allPosts, 
    }) 
} 
} 

render() { 
    return (
     <FlatList data={this.state.postList}> 
    ) 
} 

B) The Way Prop

render() { 
    return (
     <FlatList data={this.props.allPostQuery.data}> 
    ) 
} 

toute suggestion sur laquelle/pourquoi?

Répondre

0

J'imagine que vous avez une requête d'implémentation de GraphQL à cause de la balise apollo-client. Supposons que si vous n'implémentez pas Redux, l'état consiste à s'assurer que le composant soit actualisé car la méthode de rendu sera déclenchée. Si vous avez déjà Redux, la méthode des accessoires est la meilleure, car la méthode de rendu sera déclenchée lorsque vos données changent dans l'état global.

0

vous pouvez simplement utiliser la manière d'accessoires directement. puisque vous utilisez apollo-client, il est déjà enregistré dans un magasin Redux. donc, à chaque fois qu'il y a une mise à jour dans les données de n'importe quel composant, vous le recevrez également dans ce composant et ainsi déclenchera automatiquement un nouveau rendu.