null不是对象(评估this.state.count)

时间:2017-04-03 06:42:40

标签: react-native react-native-android

当我尝试为每次按下按钮时设置计数时,我面临上述错误。

export default class ViewIdeas extends Component{
get InitialState(){
  return {
  count : 0
  }
}
render(){
    return(
   .......
 <Button transparent>
             <Icon name='ios-thumbs-up-outline' style={{fontSize:21}} 
              onPress={() => this.setState({count: ++this.state.count})}/>
              <Text>{'Like' + this.state.count}</Text>
    </Button>

2 个答案:

答案 0 :(得分:16)

请设置这样的状态

constructor(props){
   super(props);

   this.state = {
      count: 0,
   }
}

然后你可以这样做.state.count

答案 1 :(得分:0)

制作React类有两种方法:ES6和使用React.createClass。

这两种方法不可互换。您应该在使用ES6类时在构造函数中初始化状态,并在使用getInitialState时定义React.createClass方法。

See the official React doc on the subject of ES6 classes

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { /* initial state */ };
  } // Note that there is no comma after the method completion
}

相当于

var MyComponent = React.createClass({
  getInitialState() {
    return { /* initial state */ };
  },
});

还有一点要注意的是构造函数方法之后没有逗号。