我有一個項目的列表,我想只有其中一個在任何給定的時間突出顯示。我寫了下面的代碼:空值不是一個對象,當評估this.state
constructor(props) {
super(props);
this.setState({indexHighlighted: 0});
}
selectItem = (i) => {
this.setState({indexHighlighted: i});
}
checkIfHighlighted = (i) => {
i == this.state.indexHighlighted;
}
render() {
return (
<FlatList
data={myData}
renderItem={ ({item}) =>
<TouchableHighlight onPress={this.selectItem(item["indexNr"])}>
<ShoppingListItem
key={item["indexNr"]}
highlighted = {this.checkIfHighlighted(item["indexNr"])}
orderInList={item["indexNr"]} />
</TouchableHighlight>
}
keyExtractor = {(item, index) => index}
/>
);
}
當我運行這段代碼,我得到 null is not an object (evaluating '_this.state.indexHighlighted')
。
爲什麼會this.state
是null
?如果我從構造函數中設置它,它可以是null
?
如果是,那我該如何在適當的時候初始化它,以免錯誤出現?
在你的構造初始化像'this.state =狀態{indexHighlighted:0};',而不是使用'setState'。 –
您還需要使用大括號函數語法'返回i == this.state.indexHighlighted;'。你錯過了'return'關鍵字。 –
@Prakashsharma你應該寫一個答案..唯一知道他們在說什麼的人。 – floor