我正在尝试使用redux-saga获取数据。结果,它每隔2或3秒钟重复渲染一次我的组件。 这是我的组件:
const Farms = props => {
useEffect(() => {
props.listFarms();
}, []);
console.log(" [ FARMS ] let see that works :", props.farms);
return (
<div> </div>
);
};
const mapStateToProps = state => {
return {
farms: state.farms
}
};
const mapDispatchToProps ={ listFarms }
export default connect(mapStateToProps, mapDispatchToProps)(Farms);
这是我的传奇发生器:
function* getAllFarms () {
try {
console.log(' [ farms saga ] all farms');
const allFarms = yield call(getFarmsAsync);
yield put(listFarms(allFarms.data))
} catch (error) {
console.log(' [ farms saga ] ERROR');
}
}
这是我的控制台输出:(它不会停止)
有人知道我的错误在哪里吗?
答案 0 :(得分:0)
从代码和控制台输出中可以明显看出,您一次又一次使用getAllFarms
调用yield put(listFarms(allFarms.data))
worker saga。
换句话说,getAllFarms
工作者的传奇正在听listFarms
产生的动作,因此它是递归执行的。