我有这个 useEffect 钩子
useEffect(() => {
console.log('mark useEffect', compatibleProducts);
if (Object.keys(compatibleProducts.rims).length === 0
&& Object.keys(compatibleProducts.tires).length === 0) return;
}, [compatibleProducts,...]);
正如您在图片中看到的,(COMPATIBLE_PRODUCTS) 的状态在最后一行发生了变化。在我检查的状态下,确实添加了值,但 useEffect 钩子不会再次触发。
这样做的原因是什么?
答案 0 :(得分:1)
你应该试试 在减速机中
case TYPE.COMPATIBLE_PRODUCTS.SUCCESS:
return {
...state,
compatibleProducts: {
...state.compatibleProducts,
...action.compatibleProducts,
timespan: + new Date()
}
}
在你的组件中
useEffect(() => {
...
}, [compatibleProducts.timespan]);