React Native:使用useCallback

时间:2020-05-07 11:14:35

标签: reactjs react-native

我正在尝试派遣一个操作来在出现主屏幕时影响API,但我有一个无限循环

我的项目:

  • 反应本地应用
  • Redux
  • redux-axios-middleware
  • 反应式导航(我正在使用抽屉)

我尝试过的事情:

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不会产生无限循环,但是调度动作是..

如果有任何想法,请先感谢。

1 个答案:

答案 0 :(得分:0)

答案是特定于我的项目的,但这里是:

我根据Redux变量值在App.js中显示了一个LoadingScreen,这导致了重新渲染。

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

问题解决了。

相关问题