【发布时间】:2020-11-26 02:50:09
【问题描述】:
我正在使用useEffect 钩子在更新状态后执行一些副作用。并且当子组件调用setOptions,useEffect 时,它工作得非常好。
我试图弄清楚是否有一种方法可以区分谁更新了选项并在此基础上执行附加工作?更准确地说,我想在 useEffect 中调用另一个函数,前提是依赖项由特定组件更新。这是我正在尝试做的一个愚蠢的例子:
function App() {
const [value, setValue] = useState({});
const [options, setOptions] = useState([]);
useEffect(() => {
const newValues = await getNewValues();
setValue(newValues);
// If options have been changed from ChildComponentA
// Then doSomething() else nothing
}, [options]);
function doSomething() {}
return(
<>
<ChildComponentA handleChange={setOptions} />
<ChildComponentB handleChange={setOptions} />
</>
)
}
这个例子可能很奇怪,这只是我遇到的问题的一个例子。主要问题是状态可以被多个事件改变,我不知道是哪个事件触发了状态改变。
【问题讨论】:
标签: reactjs react-hooks