2016-08-11 11 views
0

レンダリング前にフェッチコールを行う必要があるListViewにユーザーを表示するコンポーネントがあります。Reactネイティブレンダリング前にネットワークコールを作成する

私が使用して、このコンポーネントに移動します。私は、フェッチをレンダリングする前に呼び出すことができますように、私はcomponentWillReceivePropsを持ってListUsersコンポーネントで

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

を。

しかし、このメソッドは決して呼び出されません。

さらにListUsersAddUserコンポーネントに移動できます。

ここから、新しいユーザーが追加されるか、ユーザーがキャンセルすることができます。

新しいユーザーが追加されている場合は、私は戻って使用してListUsersコンポーネントに移動します。この時点componentWillReceiveProps

this.props.navigator.resetTo({ id: 'ListUsers', getusers: true });  

が呼び出されます。

ユーザーがキャンセルした場合、私は使用してListUsersコンポーネントに戻って移動します。

this.props.navigator.pop(); 

誰もが私が間違っているのかを見るのを助けることができますか?

答えて

0

あなたは完全にドキュメントがドキュメントからcomponentWillReceiveProps

を使用した場合に発生します言うことを説明した:

componentWillReceivePropsコンポーネントが新しい小道具を受信して​​いるときに呼び出されます

。このメソッドは、初期レンダリングのために呼び出される ではありません。

シナリオでは、フェッチ呼び出しにcomponentWillMountを使用できない理由はありますか? componentWillMountは、コンポーネントがレンダリングされる直前に呼び出され、setStateを呼び出すことができる最初のポイントです。

フェッチが完了する前にレンダリングで特定のデータしか表示されないようにするには、いくつかの方法がありますが、最も単純な方法は、コンストラクタ(ES6メソドロジを使用して開発している場合)を取得し、取得が完了したらtrueに戻します。レンダリングメソッドのif文は、この戦略を完成させます。

もっと包括的な例をまとめたいなら、私はそうすることができます。

関連する問題