我有一个代码可以覆盖Formik的Error组件,它看起来像:
const [ message, setMessage ] = useState("");
const Error = props => {
const fieldSelected = props.field;
if ((errors[fieldSelected] && touched[fieldSelected])) {
setMessage("");
return (
<span className={props.class ? props.class : "error-msg"}>
{errors[fieldSelected]}
</span>
);
} else {
return <span />;
}
};
应将成功按摩的状态设置为setMessage("")
。它可以按预期运行,但会发出警告:
无法从其他组件的功能体内更新组件
我以为我可以做回调,但是看起来我做错了方法。
关于此的任何提示吗?
答案 0 :(得分:0)
出现错误时,有两种方法可以显示错误消息。
{!Object.keys(errors).length && <Message message={message}/>}
其他可能性是在收到错误消息时完全重置消息
function resetAPI(url, props, setMessage) {
axios.post(url)
.then(response => {
setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
})
.catch((error) => {
setMessage('');
...
}
});
}
希望能解决这个问题。