1

我在场景 A 上有一个 ListView 组件,它最初没有任何内容;它是与商店相关的最近搜索词的列表。

当用户输入搜索词并在场景 A 上单击提交时,最近搜索词存储已更新,然后我们立即转换到场景 B。我从 ListView 收到“空部分标题”警告,我认为这是由场景 A 引起的随着场景的过渡开始渲染。

我尝试在场景 A 组件上使用 shouldComponentUpdate(),但它似乎没有触发?!我希望查看当前位置和新位置,如果它们不同,则返回 false 以防止更新/渲染。

有人对此有建议吗?

设置enableEmptySections={true}可以防止出现关于空部分标题的警告消息,但这似乎是绷带,而不是永久的解决方案。

4

1 回答 1

2

您是否在初始渲染时将一个空数组传递给 ListView,然后在拥有数据后将其传递给一个数组?

如果是这样,它只是一个警告,您正在渲染一个带有空部分的 ListView,在这种情况下,这可能是唯一的部分。你可以通过

enableEmptySections={true}

或者你可以做一个简单的检查,看看 ListView 是否有数据,如果没有,则返回 null。当数据通过视图时,将使用 ListView 重新呈现

在渲染函数中

if (!this.state.myVar) return null

return <MyListView myData={this.state.myVar} />
于 2016-10-19T16:40:45.417 回答