2017-04-03 125 views
3

我正面臨上面提到的錯誤,當我試圖爲每次按下按鈕時設置計數。null不是一個對象(評估this.state.count)

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> 

回答

5

請設置狀態這樣

constructor(props){ 
    super(props); 

    this.state = { 
     count: 0, 
    } 
} 

然後你就可以做this.state.count

0

有做一個陣營類兩種方法:ES6和使用React.createClass 。

這兩種方法不可互換。您應該在使用ES6類時在構造函數中初始化狀態,並在使用React.createClass時定義getInitialState方法。

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 */ }; 
    }, 
}); 

另外一兩件事要注意的是有構造方法之後沒有逗號。

相關問題