我有一个函数,当表单值更改时会调用它。一旦它改变了,我想从API中重新获取数据。我以前的setState在课堂上就是这样做的。
我想使用钩子,但我发现当您有useState
集合函数时,没有promise回调。
updateState = name => ({ target: { value } }) => {
this.setState({ [name]: value }, () => {
this.doConversion();
});
};
如果我有像useEffect()
这样的调用fetchData();
的东西,考虑到最新React版本中的钩子优点,重写上面的内容会是什么样的优雅方式?
这似乎是一个常见的用例。
我认为您可以利用钩子的dependencies
const [dependency,setDependency] = useState({})
useEffect(()=>{
doConversion();
},[dependency]) // RUN useEffect WHEN DEPEDENCY CHANGES
const someHandler = () =>{
setDependency({}) // UPDATE STATE
}