react-native的navigator跳转中数据问题

自己用react-native的navigator有这样一个场景:(主要是在iOS)

一个界面,用户点击登陆后push一个登陆页到当前路由栈,登陆完成后把登陆数据存在asyncstorage中,然后pop()回去

但是发现pop回去后原来的界面并不会重新渲染,所以没有办法调用constructor把登录的数据取出用于更新页面,即还是显示没有登录状态..

对于这种情况如何让navigator pop的时候重新渲染一下 或者更新数据?

还是说我这种做法就很不多

希望经验人士指点一二,谢谢~

阅读 5k
5 个回答

这样肯定是不会重新渲染了,你即便跳转到新的页面,但事实上没有任何触发re-render的操作呀。

你可能在想,如果能共享state就好了, state的更新会触发render。
所以就有了reflux或者redux来解决这个事情。

结论:你需要一个flux的东西来管理状态

自己想到一个解决方案,再上一个路由中传递函数给下一个路由,下一个路由卸载前调用这个函数就好了..

新手上路,请多包涵

navigator的replacePreviousAndPop(route)方法会重新渲染你要跳转的route

你没使用 redux 或者 flux 之类的数据解决方案吗?可以把数据更新到store前一个页面就自然重新渲染了。

可以在用户界面封装一个callback方法传递到登陆页面,登陆页面pop之前调用callback通过state更新页面数据。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题