设置Formik的错误组件中其他组件的状态

时间:2020-08-03 19:23:36

标签: reactjs formik use-state

我有一个代码可以覆盖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("")。它可以按预期运行,但会发出警告:

无法从其他组件的功能体内更新组件

我以为我可以做回调,但是看起来我做错了方法。

关于此的任何提示吗?

1 个答案:

答案 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('');
          ...
        }
    });
}

希望能解决这个问题。