【发布时间】:2017-12-12 12:42:03
【问题描述】:
我的平面列表有这个问题。基本上我正在破坏我的代码以使其更具可读性。但是,每当我在渲染之外调用 this.props 时,我的问题都会给我 undefine 。下面是我的代码:
renderItem(item) {
console.log(this.props) // Gives me undefine
return (
<ListItem button>
<Text>{item.item.name }</Text>
</ListItem>
)
}
render() {
return (
<FlatList
keyboardShouldPersistTaps={'always'}
data={countries.payload.data}
renderItem={this.renderItem}
keyExtractor={item => item.name}
/>
)
}
但是如果我没有将renderItem分离到其他函数。我可以访问 this.props:
render() {
return (
<FlatList
keyboardShouldPersistTaps={'always'}
data={countries.payload.data}
renderItem={({item, index}) => (
<ListItem button onPress={() => this.props.onPressAction()}> // I get the correct value
<Text>{item.name }</Text>
</ListItem>
)}
keyExtractor={item => item.name}
/>
)
}
【问题讨论】:
-
renderItem={this.renderItem.bind(this} -
这里有一点错别字(缺少右括号),应该是
renderItem={this.renderItem.bind(this)}
标签: react-native jsx