如何跳过在列表视图中呈现的行。以下示例有效,是我这样做的正常方式。
renderRow(rowData) {
if (!rowData.foo) { return null; }
return <View style={{ height: 100 }}><Text>{rowData.bar}</Text></View>
}
关于这个问题的问题是,一旦 1 行返回 null,就不会调用 onChangeVisibleRows。
与
if (!rowData.foo) { return <View style={{ height: 0 }} />; }
而
if (!rowData.foo) { return <View style={{ height: 1 }} />; }
工作正常,但不是一个好的解决方案。
所以,我的猜测是它是一个 ListView-Bug,但返回 null 真的是跳过渲染行的正确方法吗?我还没有找到任何其他选择。
在设置数据源之前,应过滤数据:
dataSource.cloneWithRows(
yourDataArray.filter(item => item.foo !== null)
);
尝试:
if (!rowData.foo) { return <View style={{ opacity: 0 }} />; }