我有一个 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]);
如果我将其留空,则渲染在接收数据之前完成并且内容不会更新。 还有其他方法可以使用此功能吗?
答案 0 :(得分:3)
loescherData
在调用您的 redux-action fetchLoescherDetails
后将不可用......并且通过 setData
更改组件将导致无限渲染导致您当前的 useEffect
依赖于 loescherData
因此,我建议您通过将空深度 onComponentDidMount
传递给您的效果来执行您的 redux-action []
...然后在不同的 {{1 }}
effect