React Native:使用useCallback避免无限循环



当主屏幕出现时,我正试图调度一个操作以影响API,但我有一个无限循环

我的项目:

  • React Native应用程序
  • Redux
  • redux-axios中间件
  • React Navigation(我使用的是抽屉(

我尝试了什么:

const dispatch = useDispatch();
useEffect(() => {
const fetchNewMails = () => 
return dispatch(ACTIONS.mailActions.fetchMails());
};
fetchNewMails();
}, [dispatch]);
-------
const dispatch = useDispatch();
const fetchNewMails = useCallback(() => {
return dispatch(ACTIONS.mailActions.fetchMails());
}, [dispatch]);
useEffect(() => {
const unsubscribe = navigation.addListener('focus', () => {
fetchNewMails();
});
return unsubscribe;
}, [fetchNewMails, navigation]);

一个简单的console.log不会产生无限循环,但调度操作是的。。

如果你有任何想法,请提前感谢。

答案是针对我的项目的,但这里是:

我在App.js中显示了一个LoadingScreen,这取决于Redux变量的值,它导致了重新渲染。

解决方案:保持LoadingScreen独立,并将其从App.js.中删除

问题已解决。

最新更新