reactjs - 如果使用 react-redux 的 useSelector,当 deps 变化时 useEffect 不会调用
这是我的代码示例:
import { useDispatch, useSelector } from 'react-redux';
import { updateMyData } from '../features';
const MyComponent = ({ list }) => {
const dispatch = useDispatch();
// select myData from redux store
const someData = useSelector((state) => state.myData);
React.useEffect(() => {
// YOU WILL NOT SEE THIS LINE
console.log('useEffect', someData);
}, [someData]);
// each time I can see newly changed data
console.log('someData', someData);
const handleClick = () => {
const newData = list.find((l) => l.name === 'myName');
// change myData, in my case it is some pagination, and I select newData from existing list
dispatch(updateMyData(newData));
};
return <div onClick={handleClick}>{'Hello world!'}</div>;
};
就我而言,我有一个项目列表,当我按下某个按钮时会改变它(在 redux store 中)。someData 改变了,MyComponent 重新渲染了,但 useEffect 没有被调用。
useEffect 仅在第一次渲染时被调用。
当其依赖项改变时,为什么 useEffect 没有被调用?