react-hook-form 搭配 next-intl 国际化插件 处理form 表单错误

useEffect(() => {
		form.clearErrors()
		if (state && state.data) {
			router.push('/')
		}
		// 后台错误
		if (state && state.errorMessage) {
			// showErrorToast(t(state.errorMessage))
			showErrorToast(state.errorMessage)
		}
		// 参数校验错误
		if (state && state.error && Object.keys(state.error).length > 0) {
			const PHONE_ERROR_TEXT = t('LOGIN_PHONE_ERROR_TEXT')
			const LOGIN_PASSWORD_ERROR_TEXT = t('LOGIN_PASSWORD_ERROR_TEXT')
			for (const key in state.error) {
				if(key == formNames[0]){
					state.error[key] = [PHONE_ERROR_TEXT]
				}
				if(key == formNames[1]){
					state.error[key] = [LOGIN_PASSWORD_ERROR_TEXT]
				}
			}
			addServerErrors<LoginFormType>(state.error, form.setError)
		}
	}, [state, form])

  
  
addServerErrors 大致如下:
  setError(key as keyof T, { type: 'server', message: errorMessage, })

  

  

posted @ 2024-09-02 20:33  红苹果学园  阅读(41)  评论(0)    收藏  举报