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个视图