如果 'filterParams' 中的 'roomCounts' 发生变化,我想忽略 useEffect 执行任何操作。有什么想法吗?
filterParams: {
blockIds: [],
roomCounts: [],
pageNo: 1,
pageSize: 1000,
realEstateUUIDs: [],
cityUUID: '',
priceInMillionMax: null,
priceInMillionMin: null,
ready: null,
},
const filterParams = useSelector((state) => state.user.filterParams);
const isFirstLoad = useRef(false);
useEffect(() => {
if (isFirstLoad.current) {
dispatch(getBuildingList()).then(() => {
dispatch(setBuildingID(null));
dispatch(setApartmentList([]));
});
}
}, [filterParams]);
答案 0 :(得分:0)
你可以这样做
useEffect(() => {
// actions when value changes
},[formParams.blockIds,formParams.ready])
它将监听值变化并触发 useEffect 内部的动作
答案 1 :(得分:0)
不是将 filterParams 传递给 useEffect,您可以传递每个单独的元素,如 filterParams.blockIds、filterParams.pageNo、
useEffect(() => {// actions values chnage},
[formParams.blockIds,fromParams.pageNo,formParams.ready])
我认为您需要传递特定值而不是整个对象