[编辑]下面的代码片段编译得很好,但我收到一个运行时错误,提示:setShowError 不是一个函数。我理解这是因为钩子函数(setShowError)在
[编辑]下面的代码片段编译得很好,但我收到一个运行时错误:setShowError 不是一个函数
我的理解是,这是因为钩子函数(setShowError)在 makeNewDevisTaskForm 函数中被调用,而该函数是在钩子 taskArray 的 init 中调用的(并且可能在 setShowError 实际被声明或已知之前......)
我认为这与反应组件生命周期有关,但我该如何处理这种情况?
const DevisForm: React.FC < IDevisFormProps > = (props) => {
const {} = props;
const [showError, setShowError] = useState(false);
const [taskArray, setTaskArray] = useState([makeNewDevisTaskForm()]);
function makeNewDevisTaskForm() {
setShowError(true); // throw runtime error 'setShowError is not a function'
return ( < DevisTaskForm Price = {
0
}
/>);
}
return ( < div > {
showError && ( < div className = "error_msg" > < Icon iconName = "Warning" / > < /div>)}</div > );
}