【发布时间】:2018-07-12 14:29:27
【问题描述】:
我想在 FlatList 上显示 Value。 该 Flatlist 为每个项目使用公共容器。
我的问题:-
为什么要为每个项目显示相同的内容?
如何解决?
我的代码:-
Main.js
renderItem({item, index}) {
return <MyCommonView data={item} />
}
render() {
return (
<View>
<FlatList
horizontal={true}
bounces={false}
showsHorizontalScrollIndicator={false}
renderItem={this.renderItem}
data={[{key: 'a'}, {key: 'b'}, {key: 'c'}, {key: 'd'}, {key: 'e'}, {key: 'f'}, {key: 'g'}, {key: 'h'}]} />
</View>
);
}
MyCommonView.js
import React, {Component} from 'react';
import {View, Text} from 'react-native';
var value;
class MyCommonView extends Component {
constructor(props) {
super(props);
value=this.props.data.key;
}
render() {
return (
<View style={{margin:5, padding: 5, borderColor: '#000000', borderWidth: 1}}>
<Text>{value}</Text>
</View>
);
}
}
export default MyCommonView;
输出:-
hhhhhhhhh
我需要的输出:-
a b c d e f g h
【问题讨论】:
-
看来你的问题在于
value = this.props.data.key。每次渲染组件时,您都在更改该 var,因此每个组件都将“h”作为 data.key。直接在渲染中传递。
标签: javascript android ios react-native react-native-flatlist