React Native 列表视图处理 Null
React Native List View handle Null
我正在使用 API 无论如何都会 return 10 个对象,即使只有 2 个结果。所以 return 值看起来像这样:
[[object], [object], [null], [null], [null], [null], [null], [null], [null], [null]]
这会导致列表视图出现问题,因为它需要值。
目前我是这样处理的:
renderRow(rowData) {
if (rowData === null) { return <View></View>; };
return (
<SearchListItem
title={ rowData.strProductName }
price={ rowData.dblProductPrice }
salePrice={ rowData.dblProductSalePrice }
imageUrl={ rowData.strLargeImage }
handleShare={ this._handleShare.bind(this) }
/>
);
}
在我看来,只是return一个空视图有点老套。
有没有更好的方法来处理这个问题?
您可以预处理模型数据并跳过在视图之间切换的需要:
var processed = _.map(rowData, (r) => {
if (r === null)
return { // contents of 'empty' model };
else
return r;
});
但是您希望视图中出现空行吗?如果不是,那么您应该使用 _.filter。如果是这样,那么 IMO,您现在的做法是合适的方式。
我正在使用 API 无论如何都会 return 10 个对象,即使只有 2 个结果。所以 return 值看起来像这样:
[[object], [object], [null], [null], [null], [null], [null], [null], [null], [null]]
这会导致列表视图出现问题,因为它需要值。
目前我是这样处理的:
renderRow(rowData) {
if (rowData === null) { return <View></View>; };
return (
<SearchListItem
title={ rowData.strProductName }
price={ rowData.dblProductPrice }
salePrice={ rowData.dblProductSalePrice }
imageUrl={ rowData.strLargeImage }
handleShare={ this._handleShare.bind(this) }
/>
);
}
在我看来,只是return一个空视图有点老套。
有没有更好的方法来处理这个问题?
您可以预处理模型数据并跳过在视图之间切换的需要:
var processed = _.map(rowData, (r) => {
if (r === null)
return { // contents of 'empty' model };
else
return r;
});
但是您希望视图中出现空行吗?如果不是,那么您应该使用 _.filter。如果是这样,那么 IMO,您现在的做法是合适的方式。