我有两个屏幕,在我的第一个屏幕上,我有一个useEffect,它有一个Redux状态的观察者。屏幕1
... useEffect(() => { if (props.data) { navigation.navigate('To Other Screen'); } }, [props.data]); ...
字符串然后在我的第二个屏幕上。我有一个函数,将更新redux 'data'。然后,在前一个上的useEffect被触发。我该怎么阻止这件事。谢谢。
ut6juiuv1#
我在react-nativation上发现了这个问题,并将其与useEffect合并结合起来;https://reactnavigation.org/docs/1.x/with-navigation-focus/
import { withNavigationFocus } from 'react-navigation'; ... const Page = (props) => { useEffect(() => { if (props.isFocused) { // function call; } }, [props.isFocused]); }; export default withNavigationFocus(Page);
字符串
zkure5ic2#
试试这个
React.useEffect(() => { const unsubscribe = navigation.addListener('focus', () => { if(props.data){ navigation.navigate('To Other Screen') } }) return unsubscribe }, [navigation, props.data])
2条答案
按热度按时间ut6juiuv1#
我在react-nativation上发现了这个问题,并将其与useEffect合并结合起来;
https://reactnavigation.org/docs/1.x/with-navigation-focus/
字符串
zkure5ic2#
试试这个
字符串