Javascript 将状态对象从React组件函数传递给外部函数
我对JS非常陌生,React不能将状态对象从React组件函数传递到外部函数 这是我调用的FormPage父组件方法“formSubmit”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:
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})