Reactjs REACT useffect()调用了不需要的
我正在使用Reactjs REACT useffect()调用了不需要的,reactjs,components,use-effect,Reactjs,Components,Use Effect,我正在使用useffect,每当我的状态的值selected更新时,它应该更新我的组件: const Thumbnail = ({ image }) => { const [state, dispatch] = useContext(Context); const [checked, setChecked] = useState(getChecked()); useEffect(() => { setChecked(getChecked()
useffect
,每当我的状态的值selected
更新时,它应该更新我的组件:
const Thumbnail = ({ image }) => {
const [state, dispatch] = useContext(Context);
const [checked, setChecked] = useState(getChecked());
useEffect(() => {
setChecked(getChecked())
}, [state.selected])
...
}
export default Thumbnail
但是每次更新我状态中的任何内容时,都会调用该函数。例如,当其他组件更新state.all
时,将调用useffect()
方法
我怎样才能避免这种情况,并且只在state.selected
被更改时调用useffect()
方法?我想您需要的是
usemo
仅当其中一个依赖项发生更改时,才会重新计算已记录的值
const checked=usemo(()=>getChecked(),[state.selected])代码>什么是状态类型。选择的?如果它不是原语,它的引用可能会更改,从而导致效果运行