【发布时间】:2016-09-09 15:23:27
【问题描述】:
我正在尝试在 React Native 中设计类似以下屏幕截图的内容。 请注意,每个图块都是从后端获取的 Product 元素。
但我无法使用 ListView 及其 renderRow 方法来执行此操作,这会拒绝我使用任何类型的 InfiniteScroll 组件。
目前我正在运行一个循环,一次包含 2 个元素,并在滚动视图中渲染 2 个元素。下面是我的代码,可以更好地解释。
render() {
var elem = [];
for(var i = 0; i < this.state.products.length; i+=2) {
var prod = this.state.products[i];
var prod2 = this.state.products[i + 1];
elem.push(
<View style={styles.view} key={i} >
<ProductTile onPressAction={this._pdpPage} prod={prod} index={i} />
<ProductTile onPressAction={this._pdpPage} prod={prod2} index={i + 1} />
</View>
);
}
return (
<ScrollView>
{elem}
</ScrollView>
)
}
然后根据 index 属性,我将元素左对齐或右对齐。 我的视图样式如下所示:
view: {
flex: 1,
flexDirection: 'row',
},
请提出一个更好的方法来做到这一点。
提前致谢。
【问题讨论】:
标签: react-native flexbox