如何将组件存储到SectionList数据中?

时间:2020-06-18 03:30:06

标签: react-native

我将代码重构为页面的不同部分,并在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();
        }}
      />
    );
  }

0 个答案:

没有答案