Javascript 将状态对象从React组件函数传递给外部函数

Javascript 将状态对象从React组件函数传递给外部函数,javascript,reactjs,Javascript,Reactjs,我对JS非常陌生,React不能将状态对象从React组件函数传递到外部函数 这是我调用的FormPage父组件方法“formSubmit” import { formValidate } from './FormHelpers'; class FormPage extends React.Component { constructor(props) { super(props); this.state = { fields: { userName:

我对JS非常陌生,React不能将状态对象从React组件函数传递到外部函数

这是我调用的FormPage父组件方法“formSubmit”

import { formValidate } from './FormHelpers';

class FormPage extends React.Component {
constructor(props) {
    super(props);
    this.state = {
      fields: {
        userName: "", userAttributes: []
      },
      errors: {}
    }
  };

formSubmit = (e) => {
e.preventDefault();
const formErrors = formValidate(this.state.fields);
....
.....
}

下面是我在FormHelpers.js文件中定义的函数formValidate:

export const formValidate = ({fieldsIn}) => {
    let errors = {};
    let formIsValid = true;
    let fields = fieldsIn;


    if (!fields["userName"]) {
        formIsValid = false;
        errors["userName"] = "Please enter metadata";
    }

    if (typeof fields["userName"] !== "undefined") {
        if (!fields["userName"].match(/^[a-zA-Z ]*$/)) {
            formIsValid = false;
            errors["userName"] = "Please enter alphabet char only";
        }
    }

   
    let formErrors = {
        errors: errors, formIsValid: formIsValid
    };
    return formErrors;
    }


我想用state.fields作为参数调用formValidate()函数,并将formErrors作为对象返回以进行响应

执行时,我发现FormHelpers.js中的错误如下 未捕获的TypeError:无法读取未定义的属性“userName”

我似乎不明白我的错误。你能在这方面指导我吗

提前感谢

您调用
formValidate(this.state.fields)
,函数参数将分解属性
({fieldsIn})
。因此,您试图访问属性
this.state.fields.fieldsIn.userName
,其中可能不存在
fieldsIn
。请使用formValidate=(fieldsIn)而不是({fieldsIn})