Thr*_*itt 3 javascript components state reactjs
可以说我在做一个简单的CRUD应用。我的功能组件基本上只是表格。
我看起来像这样:
const MyForm = (props) => {
const [myValues, setMyValues] = useState(props.myValues);
const [errors, setErrors] = useState(0);
(...)
}
Run Code Online (Sandbox Code Playgroud)
在UPDATE情况下,我(当然)遇到了这样的问题:安装组件时props.myValues仍然为空,而当从父组件进行的api调用完成时没有再次设置(更新),因此表单值为空。
使用类组件,我可以使用getDerivedStateFromProps()解决此问题。功能组件中是否有类似内容?还是我从一开始就做错了?感谢您的任何建议!
是的,您当然可以使用useEffect。
在您的情况下,代码应如下所示:
const MyForm = (props) => {
const [myValues, setMyValues] = useState(props.myValues);
const [errors, setErrors] = useState(0);
useEffect(() => {
setMyValues(props.myValues);
}, [props.myValues]);
}
Run Code Online (Sandbox Code Playgroud)