【发布时间】:2018-12-13 06:23:24
【问题描述】:
如果 item.id 与 json 中的 id 相同,如何仅在 FlatList 中呈现项目?
我是 react-native 和 JavaScript 的新手,所以也许这是一个愚蠢的问题。
到目前为止我的代码:
export default class DetailsScreen extends Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
dataSource: [],
};
}
componentDidMount() {
this.setState({
isLoading: false,
dataSource: data.data
});
}
render() {
if (this.state.isLoading) {
return (
<View>
<ActivityIndicator />
</View>
);
}
return (
<View>
<FlatList
data={this.state.dataSource}
renderItem={({ item }) => (this.renderDetailView(item))}
keyExtractor={(item, index) => index.toString()}
/>
</View>
);
}
}
这是 Flatlist 的简单渲染,它的效果非常好。 'renderDetailView' 非常复杂而且很长,所以我无法添加代码。
但它看起来像这样:
renderDetailView(item) {
return (
<View style={styles.info} key={item.id}>
<View>
<Text style={styles.detailView}>
{item.name}
</Text>
<Text>{'\n'}</Text>
</View>
...
</View>
);
}
在最终项目中,我想处理对另一个 FlatList 的单击并显示单击项的详细信息。单击的项目将 id '发送'到这个类,所以我得到了特定的 detailView。
对不起,我的英语不好。
【问题讨论】:
标签: react-native ecmascript-6 react-native-android react-native-flatlist