我正在开发一个本机应用程序。我在应用中使用react-native-router-flux库进行导航。
该库工作正常,但在返回导航时没有反应生命周期方法被调用。
假设例如我按了第2页的后退按钮,导航到第1页,第2页的componentWillUnmount()被调用,但没有第1页的生命周期方法被调用。
我想根据新状态刷新页面1。
非常感谢任何帮助。
答案 0 :(得分:0)
导航回来时,默认调用Actions.pop()
时不带参数。要刷新第1页,您需要覆盖后退按钮的功能并调用Actions.pop({refresh:{<propsToSetToPage1>}})
。这应该在第1页中触发componentWillReceiveProps(nextProps)
,其中nextProps是你放在pop()中的新道具。
以下内容来自react-native-router-flux的文档:
Actions.pop() will pop the current screen. It accepts following optional params:
{popNum: [number]} allows to pop multiple screens at once
{refresh: {...propsToSetOnPreviousScene}} allows to refresh the props of the scene that it pops back to
PS。如果您正在为Android开发,您可能希望在用户按下硬件后退按钮时执行此操作。查看React Native官方文档中的BackAndroid。