我使用的API无论如何都会返回10个对象,即使只有2个结果。所以返回值看起来像这样:
[[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) }
/>
);
}
在我看来,只返回一个空视图是一种hacky。
有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
您可以预处理模型数据并跳过需要在视图之间切换:
var processed = _.map(rowData, (r) => {
if (r === null)
return { // contents of 'empty' model };
else
return r;
});
但是你想要在视图中显示空行吗?如果没有,那么你应该使用_.filter。如果是这样,那么现在你采用IMO的方式是适当的方式。