2017-01-04 61 views
1

我将NavigatorIOS设置为显示由从我们的服务器获取的JSON文件填充的屏幕。该文件在本地缓存,因此该应用程序也可以脱机运行。如何在NavigatorIOS中对react-native重置导航堆栈(和缓存屏幕)?

当服务器更新JSON时,应用程序会在后台下载新的JSON,然后发出一个事件,通知应用程序重置导航堆栈并向前使用新的JSON文件。大多数情况下,这很有效。

我遇到的麻烦是先前在导航堆栈中查看过的屏幕仍然被缓存(大概是由NavigatorIOS/React-Native)并且不使用最新的JSON数据。

,如果我退出并重新启动应用程序但是

有没有办法来清除然后导航堆栈的屏幕缓存,或强制刷新/重载,它工作?

+0

你使用popToTop吗? –

+0

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

+0

我相信popToTop不会刷新初始组件,您是否正在更新该组件中的数据并将其作为道具传递下去? –

回答

1

使用popToTop()不会重新初始化组件,因此传递的任何道具都不会被更新。

+0

谢谢=) 只是为了增加这个,NavigatorIOS也不响应道具改变。为了这个工作,我需要使用事件发射器来通知应用程序有存储在AsyncStorage中的新数据,然后有适当的'setState'调用来实际获取更改呈现。 –