我想要的就是更改状态后,我要运行第二个参数。
没有钩子..这就是它的样子
state = {
gasTypeFrom: '',
}
setModal = item => {
setState({ gasType: item }, () => {
renderFrom();
});
};
这就是我尝试用钩子
const [froms, setFroms] = useState({
gasType: 'Select Value Here',
displayModal: false,
});
function setModalFrom(item) {
useEffect(
() => {
setFroms({...froms, gasType: item});
},
() => {
renderModalFrom();
}
);
console.log('setModalFrom()', froms.gasType);
}
我该如何处理带有第二个参数的钩子?
答案 0 :(得分:1)
useEffect
需要一个函数回调和一个依赖数组,因此当依赖数组中的值被更新时,会触发效果。
const [froms, setFroms] = useState({
gasType: 'Select Value Here',
displayModal: false,
});
useEffect(() => {
renderModalFrom();
}, [froms]); // when a value here updates, effect is run
...somewhere in your code
setFroms({...froms, gasType: item}); // this updates the value