反应导航屏幕中的this.state

时间:2017-09-12 00:22:22

标签: react-native react-navigation

我无法访问和定义状态。我的应用程序使用react-navigation。总的来说,在我的应用程序中,我总是可以使用状态(没有错误),但在主要的tabbar屏幕中,我得到一个" null不是一个对象"我使用简单的状态定义时出错,如下所示。

我没有使用redux



export class Review_Screen extends React.Component {

  // set title at the top of the page
  static navigationOptions = ({navigation}) => ({
    title: navigation.state.params.title
  });

  constructor(props) {
    super(props);
    const { params } = this.props.navigation.state;
    this.state = {
      // general ID info
      barcode: params.productdata.barcode,
      userID: params.user.ID,
      username: params.user.name,
      expanded: false,
      testing: 'hallo hallo',
    };
  }

  render() {
    console.log('-_-_-_-_-_-_-_-_-_-_-_-_-');
    console.log(this.state.testing);
    console.log('-_-_-_-_-_-_-_-_-_-_-_-_-');
    const { params } = this.props.navigation.state;
    
etc...

// results in error "null is not an object (evaluating 'this.state.testing')


   




我认为这是因为当我在反应导航中时,我应该以不同的状态工作。

如何定义一些本地状态变量?什么是最佳做法?我会在某个时候去redux,但我还没准备好。

1 个答案:

答案 0 :(得分:1)

嗯,那令人尴尬。这个问题的出现是因为我在编码的过程中,我的反应原生于#34;热重新加载#34;

这基本上意味着我要求一个没有定义的变量,因为没有调用构造函数(应用程序在编码时是活的)。

一旦我重新启动或重新加载应用程序,它就会定义状态(因为在最初加载应用程序时它会调用构造函数()。

希望这能为别人服务..