React Native useEffect() 重新渲染太多

时间:2021-03-07 11:34:59

标签: react-native

我有一个 useEffect 函数,其中调用了 redux 操作并将数据写入 prop。我的问题是 useEffect 循环多次并用请求淹没服务器。

const { loescherData, navigation } = props;

useEffect(() => {
    AsyncStorage.getItem('userdata').then((userdata) => {
        if (userdata) {
            console.log(new Date());
            console.log(userdata);
            var user = JSON.parse(userdata);
            props.fetchLoescherDetails(user.standort);
            setData(props.loescherData);
        }
    });
}, [loescherData]);

如果我将其留空,则渲染在接收数据之前完成并且内容不会更新。 还有其他方法可以使用此功能吗?

1 个答案:

答案 0 :(得分:3)

loescherData 在调用您的 redux-action fetchLoescherDetails 后将不可用......并且通过 setData 更改组件将导致无限渲染导致您当前的 useEffect依赖于 loescherData

因此,我建议您通过将空深度 onComponentDidMount 传递给您的效果来执行您的 redux-action [] ...然后在不同的 {{1 }}

effect