为了账号安全,请及时绑定邮箱和手机立即绑定

React Native:null 不是对象

React Native:null 不是对象

慕的地6264312 2021-10-07 10:23:28
我有一个功能齐全的 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。
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

要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.


查看完整回答
反对 回复 2021-10-07
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

我认为问题出在DetailsConfirmationForm组件中的这一行

validationErrors={this._getErrors()}

您正在调用函数而不是传递.

尝试这个

validationErrors={this._getErrors}


查看完整回答
反对 回复 2021-10-07
  • 2 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号