2017-01-04 9 views
1

私はNavigatorIOSを設定して、私たちのサーバーから取得したJSONファイルによって表示される画面を表示します。このファイルはローカルにキャッシュされるため、アプリケーションはオフラインでも実行できます。反応ネイティブでNavigatorIOSのナビゲーションスタック(およびキャッシュされた画面)をリセットするにはどうすればよいですか?

サーバーがJSONを更新すると、アプリケーションは新しいJSONをバックグラウンドでダウンロードし、ナビゲーションスタックをリセットして新しいJSONファイルを使用するようにアプリケーションに通知するイベントを送出します。ほとんどの場合、これは素晴らしい作品です。

困ったことに、以前にナビゲーションスタックで表示されていた画面が(おそらくNavigatorIOS/React-Nativeによって)キャッシュされていて、最新のJSONデータを使用していないということです。

私は終了し、しかし

はその後、ナビゲーションスタック上の画面のキャッシュをクリアするために、またはリロード/リフレッシュを強制する方法はありアプリを再起動した場合それは動作しますか?

+0

popToTopを使用していますか? –

+0

'resetNavigationStack(){ this.refs.nav.popToTop(0); } ' –

+0

私はpopToTopが最初のコンポーネントをリフレッシュしないと思います、そのコンポーネントのデータを更新して、小道具として渡していますか? –

答えて

1

popToTop()を使用しても初期コンポーネントが再マウントされないため、渡されたすべての小道具は更新されません。

+0

ありがとう=) これに追加するだけで、NavigatorIOSは変更している小道具にも反応しません。これを機能させるには、イベントエミッタを使用して、AsyncStorageに新しいデータが格納されていることをアプリに通知し、実際にレンダリングする変更を取得するための適切な 'setState'呼び出しを行う必要がありました。 –

関連する問題