phi*_*phi 7 react-native react-native-flatlist
我有一个FlatList
显示用户评论的内容,我还希望用用户的个人资料填充标题(这是与获取评论的网络调用不同的网络调用).
这是render()
看起来像:
render() {
return (
<FlatList
data = {this.state.comments}
renderItem = {this.renderComment}
ListHeaderComponent={this.renderHeader}
keyExtractor={(comment, index) => comment.id}
/>
)
}
Run Code Online (Sandbox Code Playgroud)
然后renderHeader
看起来像:
renderHeader() {
return (
<ProfileView user={this.state.profile} />
)
}
Run Code Online (Sandbox Code Playgroud)
我使用fetch
in componentWillMount
然后setState
才能获取数据(这部分工作正常).现在我在模拟器上得到的错误是
undefined不是对象(评估'this.state.profile')
但是当我删除该renderHeader
方法时,会正确获取注释.
由于我对RN很新,你能帮助我理解错误以及解决方法吗?
G0d*_*uad 14
这看起来只是访问上下文的问题.当你运行它所renderHeader
调用的方法时,FlatList
它不知道与之this
有关.
所以,你可以简单地设置this.renderHeader = this.renderHeader.bind(this)
你的constructor()
方法.
或者,您还应该能够使用箭头函数来调用它,因为这会自动引用正确的this
上下文.
ListHeaderComponent={() => this.renderHeader()}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4758 次 |
最近记录: |