【发布时间】:2021-03-12 06:02:46
【问题描述】:
我在反应原生应用中有 2 个屏幕,两个屏幕都是功能组件。 屏幕 1 上的一个按钮通向屏幕 2,我在屏幕 2 上选择了几个复选框,然后单击一个按钮导航到屏幕 1,并添加导航参数。
回到屏幕 1 运行 didFocus 侦听器,但参数值未定义,当我在代码编辑器中按 ctrl+s 时,useEffect 运行并且值变得可访问。
此后,从屏幕 2 返回屏幕 1 会运行 didfocus 侦听器(如预期的那样),但参数值不会更新。
下面是屏幕 1 中的 useEffect 代码。
useEffect(() => {
navigation.getParam('from') == 'TagFiltersScreen' ? getAllQuestions('mostInsightful', navigation.getParam('tagsFilter')) : getAllQuestions();
const listener = navigation.addListener('didFocus', () => {
navigation.getParam('from') == 'TagFiltersScreen' ? getAllQuestions('mostInsightful', navigation.getParam('tagsFilter')) : getAllQuestions();
});
return () => {
listener.remove();
}
}, []);
【问题讨论】:
-
我猜是这样,但我只使用 navigation.getParam('tagsFilter')
标签: react-native react-navigation use-effect