我将代码重构为页面的不同部分,并在React native中使用SectionList。我在第一个函数中定义了不同的部分,并为输出每个组件的渲染函数分配了数据键(例如:3RD函数中的组件头)。
然后,将所有内容放入render()函数SectionList中,并将定义的节数据传递给它。 我的问题是当我打印出项目时,什么都没有。我还将在defineSectionsToDisplay中打印出数据,并且数据键为空。可能是我没有正确存储数据吗? 谢谢!
defineSectionsToDislay(){
//here defines 5 sections including header - search, banner, tags, All Trips, Other Trips to render
const data = [
{
title: "Header",
data: this._renderHeader()
},
{
title: "Banner",
data: this._renderBanner()
},
{
title: "Tags",
data: this._renderTags()
},
]
return data;
}
render(){
return(
<SafeAreaView>
<SectionList
// initialNumToRender={}
// windowSize={}
// getItemCount={}
keyExtractor={(item, index) => item + index}
// maxToRenderPerBatch={}
// getItem={}
// updateCellsBatchingPeriod={}
sections={this.defineSectionsToDislay()}
renderItem={(item) => console.log('item',item)}
/>
</SafeAreaView>
)}
_renderHeader() {
return (
<Header
title={''}
renderLeft={() => {
return <Svg.IcBack style={[BaseStyle.back]} />;
}}
renderRight={() => {
return (
<View style={styles.viewRight}>
<TouchableOpacity
onPress={() => {
navigation.navigate('SearchDestinationScreen', {
callback: this._onSearchDestination,
placeHolder: I18n.t('where_to_go'),
});
}}>
<Svg.IcSearch style={styles.searchIcon} />
</TouchableOpacity>
</View>
);
}}
onPressLeft={() => {
navigation.goBack();
}}
/>
);
}