Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React本机列表空组件在节列表中不工作_Javascript_List_React Native - Fatal编程技术网

Javascript React本机列表空组件在节列表中不工作

Javascript React本机列表空组件在节列表中不工作,javascript,list,react-native,Javascript,List,React Native,当我的分区为空时,我尝试渲染空组件。这是我的示例代码 <SectionList sections={[ {title: 'sectionOne', data: this.props.Activities.ActivityTypeOne}, {title: 'sectionTwo', data: this.props.Activities.ActivityTypeTwo}, {title: 'sectionThree', data: t

当我的分区为空时,我尝试渲染空组件。这是我的示例代码

<SectionList
    sections={[
        {title: 'sectionOne', data: this.props.Activities.ActivityTypeOne},
        {title: 'sectionTwo', data: this.props.Activities.ActivityTypeTwo},
        {title: 'sectionThree', data: this.props.Activities.ActivityTypeThree}
    ]}
    keyExtractor={ (item, index) => index }
    stickySectionHeadersEnabled={true}
    extraData={this.state}
    ListEmptyComponent={this.renderEmptyScreens}
    />
但是,当这3个all数组为空时,它不会触发ListMPtyComponent 谁能告诉我这个代码有什么问题,或者如果我的逻辑不正确,谁能解释一下。
实际上,当所有3个数组都为空时,我需要渲染一些视图。

您可以添加一个节页脚组件,在该组件中,您将根据section.data.length渲染空屏幕


举个小例子,我自己遇到这个问题后,发现sections属性必须完全为空才能将列表视为空,即sections本身应等于[]

解决方案:

使用三元运算符根据您自己的条件选择要传递到节中的内容。如果决定为空,则传入[],否则传入您的sections对象。例如,您的代码如下所示:

isSectionsEmpty(sectionsObject){
    //logic for deciding if sections object is empty goes here
}

render(){
    /* ...
       Other render code
       ...
    */
    const sections = [
        {title: 'sectionOne', data: this.props.Activities.ActivityTypeOne},
        {title: 'sectionTwo', data: this.props.Activities.ActivityTypeTwo},
        {title: 'sectionThree', data: this.props.Activities.ActivityTypeThree}
    ]
    return(
        ...
        <SectionList
            sections={this.isSectionsEmpty(sections) ? [] : sections}
            keyExtractor={ (item, index) => index }
            stickySectionHeadersEnabled={true}
            extraData={this.state}
            ListEmptyComponent={this.renderEmptyScreens}
            />
        ...
    )
}

注意:您也可以放弃三元运算符,直接从isSectionsEmpty返回您的sections对象或[],但如果需要,此方法允许您检查代码中其他地方的sections是否为空。

从何处获取sectionList?我在编辑时没有从@vencovskyNow获得它,我知道从何处获得它。请给我看一个什么都没用的箱子。请说明如何,但当这3个数组为空时,您的列表不是空的,它包含三个部分。这些部分为空的事实与此无关。this.props.Activities.ActivityTypeOne、this.props.Activities.ActivityTypeTwo、this.props.Activities.ActivityTypeThree当此列表为空时,我需要显示另一个视图感谢您@Alexandru的回答。如果我这样使用,它将为每个空部分提供每个视图。在我的例子中,它给出了3个视图