猿问

React Native:null 不是对象

我有一个功能齐全的 Android 应用程序,现在出现此错误:


null is not an object (evaluating '_this.state.displayErrors') 这是在这里引用这行代码:


_getErrors = () => {

    if (this.state.displayErrors) {

      return {

        ...this.state.validationErrors,

        ...this.props.validationErrors

      };

    }

    return {};

  };

这是一个范围界定问题吗?该if声明没有访问displayErrors以外_getErrors的功能?如果是这样,那么几周前这到底是怎么工作的?


我尝试放置:


this.state = {

   validationErrors: {},

   displayErrors: false,

   titleName: personalDetails && personalDetails.firstName,

   displayAlert

};

里面constructor(props),我相信这是属于,但后来我得到一吨的关于它的变量,其他问题,如功能personalDetails和displayAlert没有被定义为变量。最大的痛苦就是displayAlert。


慕的地6264312
浏览 201回答 2
2回答

精慕HU

要this.state在构造函数中进行设置,您将需要解构props以获得所需的值,类似于componentDidMount. 我会完全删除初始状态值的设置componentDidMount。constructor(props) {    super(props);    const { personalDetails, personalAddress } = props.registeredUser;    const { params = {} } = props.navigation.state;    const { displayAlert = true } = params;    this.state = {      validationErrors: {},      displayErrors: false,      titleName: personalDetails && personalDetails.firstName,      displayAlert    };  }  componentDidMount() {    const { personalDetails, personalAddress } = this.props.registeredUser;    console.log(this.props.registeredUser);    if (personalDetails) {      this.props.firstNameChanged(personalDetails.firstName);      this.props.lastNameChanged(personalDetails.lastName);      this.props.suffixChanged(personalDetails.suffix);      this.props.prefixChanged(personalDetails.prefix);    }    if (personalAddress && personalAddress.stateCode) {      this.props.stateChanged(personalAddress.stateCode);    }  }我不确定这是否会解决您的问题或如何this.state设置为null.

宝慕林4294392

我认为问题出在DetailsConfirmationForm组件中的这一行validationErrors={this._getErrors()}您正在调用函数而不是传递.尝试这个validationErrors={this._getErrors}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答