Javascript 语言更改时是否调用了i18n函数?

Javascript 语言更改时是否调用了i18n函数?,javascript,reactjs,internationalization,formik,Javascript,Reactjs,Internationalization,Formik,问题->我正在尝试进行验证,以在切换语言时更改Formik错误消息,但只有在我点击“提交”按钮调用“Formik.onSubmit”或更新表单中的字段时,Formik才会自动更改错误消息,以便在我键入“Formik.handleChange”时更新错误消息 尝试->因此我尝试使用useffecthook更新Formik错误: const [errors, setErrors] = useState(formik.errors); useEffect(() => { set

问题->我正在尝试进行验证,以在切换语言时更改Formik错误消息,但只有在我点击“提交”按钮调用
“Formik.onSubmit”
或更新表单中的字段时,Formik才会自动更改错误消息,以便在我键入
“Formik.handleChange”时更新错误消息

尝试->因此我尝试使用
useffect
hook更新Formik错误:

  const [errors, setErrors] = useState(formik.errors);

  useEffect(() => {
    setErrors(formik.errors);
  }, [formik.errors]); 

  <Error>{errors.email}</Error>
它工作了,但是当我第一次呈现页面时,它调用了
useffect
来呈现错误,即使表单没有被触动,因此
useffect
也可以作为
ComponentDidMount
componentdiddupdate
(我唯一想要的)。
那么,i18n是否有一个函数或道具,我可以将其置于useEffect上,以便仅在语言更改时调用?

我刚刚检查了
formik.errors
对象是否为空,因此它阻止了单击事件,如果不是,则更改了错误语言:

useEffect(() => {
    if (Object.entries(formik.errors).length !== 0)
      document.getElementById('submitButton').click();
  }, [i18n.language]);

我刚刚检查了
formik.errors
对象是否为空,因此它阻止了单击事件,如果不是,则更改错误语言:

useEffect(() => {
    if (Object.entries(formik.errors).length !== 0)
      document.getElementById('submitButton').click();
  }, [i18n.language]);

我不相信有什么内置的-但你可以写一个计时器,针对属性进行投票,并提出自己的事件我被困在同一个问题上,我不确定这个链接是否会有帮助:这两个链接帮助我解决了这个问题。我不相信有任何内置的-但你可以写一个计时器,针对属性进行投票属性并引发您自己的事件我被困在同一个问题上,我不确定此链接是否有帮助:这两个链接帮助我解决了此问题。