我声明了一个常量,该常量具有从另一个页面传递的参数。
const obj = this.props.navigation.state.params.item;
const itemArray = Object.values(obj.name)
现在,我在Flatlist数据中调用itemArray,请参见下文。
这是我的单位列表:
<FlatList
key={this.keyExtractor}
data={itemArray}
renderItem={({item}) => this.renderText(item)}
/>
问题在于它不显示文本。它只是空白。
这是我在Flatlist中调用的render方法:
renderText = (itt) => {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<ListItem
title={itt.name}
/>
</View>
)
}
答案 0 :(得分:2)
您应该可以使用FlatList。
这是我如何在组件的render方法中实现它。
this
变量的前面使用obj
。 item
函数中拼写了renderItem
错误,如果不纠正,可能会导致问题。['first', 'second', 'third']
keyExtractor
。keyExtractor = (item, index) => {
return index.toString();
}
render () {
const obj = this.props.navigation.state.params.item;
return (
<FlatList
key={this.keyExtractor}
data={obj}
renderItem={({ item }) => <Text>{item}</Text>}
/>
);
}
答案 1 :(得分:1)
由于FlatList不接受对象,因此您必须采取解决方法。您还必须创建一个数组并将对象推入那里。
const obj = this.props.navigation.state.params.item;
var propsArray = [];
const itemArray = Object.assign(obj)
propsArray.push(itemArray)
return (
<View>
<FlatList
key={this.keyExtractor}
data={propsArray}
renderItem={({ item }) => this.renderText(item)}
/>
</View>
}
和您的渲染方法应保持不变:
renderText = (itt) => {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<ListItem
title={itt.name}
/>
</View>
)
}
答案 2 :(得分:0)
您可以直接使用
<FlatList
key={this.keyExtractor}
data={this.props.navigation.state.params.item}
renderItem={({ iteemm }) => <Text>{iteemm}</Text>}
/>
答案 3 :(得分:0)
尝试
renderText = (itt) => {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<ListItem
title={itt}
/>
</View>
)
}