就是第一次加载时能加载出相应的数据,在后来加载更多的时候,状态机里的 dataArray 改变了,但是页面不会动态刷新,一般要怎么做才行,刚接触 RN 还不是很懂这个机制
render 代码
renderData() {
return (
<View>
{this.state.dataArray.length !== 0 ? <SectionList
renderItem={this.renderItemView}
renderSectionHeader={this.renderListHeaderView}
showsVerticalScrollIndicator={false}
sections={this.state.dataArray}
/> : <View/>}
</View>
);
}
render() {
return this.renderData();
}
调用代码
loadHome() {
const {navigate} = this.props.navigation;
if (!this.state.isRefreshing) {
return (
<View>
{/* 将 this 对象传过去 */}
<ScrollImage navigate={navigate} _home={this}/>
<NewsView navigate={navigate} _home={this}/>
</View>
)
} else {
return (
<View/>
)
}
}
render() {
const {navigate} = this.props.navigation;
return (
<ScrollView
ref='ScrollView'
style={{backgroundColor: '#F3F3F3'}}
onScroll={this._onScroll.bind(this)}
scrollEventThrottle={50}
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh.bind(this)}
colors={['#00A2ED']}
progressBackgroundColor="#ffffff"/>
}>
{this.loadHome()}
</ScrollView>
);
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.