Javascript 语言更改时是否调用了i18n函数?
问题->我正在尝试进行验证,以在切换语言时更改Formik错误消息,但只有在我点击“提交”按钮调用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.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]);
我不相信有什么内置的-但你可以写一个计时器,针对属性进行投票,并提出自己的事件我被困在同一个问题上,我不确定这个链接是否会有帮助:这两个链接帮助我解决了这个问题。我不相信有任何内置的-但你可以写一个计时器,针对属性进行投票属性并引发您自己的事件我被困在同一个问题上,我不确定此链接是否有帮助:这两个链接帮助我解决了此问题。