javascript - 如何在 React 中访问对象中的动态字段?
问题描述
我已经使用自定义钩子实现了表单验证,它将错误作为对象发送到以下格式的表单中。
errors : {
userEmail: {
required: true
}
}
表单组件如下
import React from 'react';
import { FormInput } from './../FormInput/FormInput.component';
import { useFormValidation } from './../../shared/utils/useFormValidation';
import { Button } from './../Button/Button.component';
import './SignIn.styles.css';
import FormFieldsData from './../../shared/data/form-fields';
const SignIn = () => {
// FORM INITIAL STATE
const formInitialState = {
userEmail: '',
userPassword: ''
};
// SETTING VALIDATION RULES FOR FORM FIELDS
const fieldValidationRules = {
userEmail: { required: true, isValidEmail: true },
userPassword: { required: true}
};
// INITIALIZING FORM USING HOOK
const [
signInFormState,
errors,
isValid,
handleInputChange,
handleFormSubmit,
handleBlur
] = useFormValidation(formInitialState, fieldValidationRules);
console.log(errors.userEmail.required);
const { userEmail, userPassword } = signInFormState;
return(
<div className = 'SignInSection'>
<h1> Sign In here..!! </h1>
<form onSubmit = {handleFormSubmit} >
<FormInput
{...FormFieldsData.userEmail}
value = {userEmail}
clicked = {handleInputChange}
blur = {handleBlur} />
{/* Validation Error Message */}
<FormInput
{...FormFieldsData.userPassword}
value = {userPassword}
clicked = {handleInputChange}
blur = {handleBlur} />
<Button
type = 'submit'
btn_label = 'Login'
btn_size = 'sm'
disabled = {!isValid}
btn_bg = '#00ACEE'
btn_color = '#FFFFFF' />
<Button
type = 'button'
btn_label = 'Cancel'
btn_size = 'sm'
btn_bg = '#4b4b4b'
btn_color = '#FFFFFF' />
</form>
</div>
)
};
export { SignIn }
当尝试从错误对象访问所需字段以实现验证消息时,我收到以下错误。
请指导我如何实现此功能?
;
解决方案
推荐阅读
- java - 具有@NotNull 列的可空子实体
- windows - Delphi中如何引用当前对象?
- r - 使用 R 从 API 中检索图片
- reactjs - React-Redux:如何重构 mapstatetoprops 中的属性名称
- jspdf - 防止表过大
- python - 无法从站点找到输入框或更可能无法使用 selenium Python 访问它
- phpmyadmin - 如何通过 Xampp 解决来自 phpmyadmin 的致命错误消息?
- android - 如何创建一个 Jetpack Compose Column,其中中间的孩子是可滚动的,但所有其他孩子总是可见的?
- azure-devops - 在 Azure DevOps 上构建多目标 nuget 包
- python - 将列表中的项目分配到python中固定数量的垃圾箱的所有组合?