我正在学习react本机,这里我通过API获得了一个listview,响应结果如下:
{
"status": 200,
"error": false,
"data": [
{
"id": "1",
"awb": "RJCSS1728999298839828",
"name": "amar",
"destination": "Bandung"
}
]
}这里,我使用listview显示数据,它只显示awb。我想问,如何抛出id参数,当我单击listview时,它会显示详细信息?
constructor(){
super()
this.state = {
dataOrigin: [],
isLoading : true
}
}
componentDidMount(){
const url = 'https://example.com/get'
fetch(url)
.then((response)=> response.json())
.then((responseJson)=>{
this.setState({
dataSource: responseJson.data,
isLoading : false
})
})
.catch((error)=>{
console.log(error)
})
}
render() {
return (
<List keyExtractor = {(item, index)=> index.toString()}
dataArray={this.state.dataSource}
renderRow={(item) =>
<ListItem icon style={{marginBottom: 20,marginTop: 5}}>
<Body>
<TouchableOpacity>
<Text>{item.awb}</Text>
</TouchableOpacity>
</Body>
</ListItem>
}>
</List>
)我试过加这个
<TouchableOpacity
id={item.id} onPress={() => this.props.navigation.navigate('tracking', { id: id})}>
<Text>{item.awb}</Text>
</TouchableOpacity>我得到了一个错误错误:文本字符串必须在组件.中呈现。
发布于 2020-04-20 07:39:37
你走错路了,下面是你该怎么通过的
<TouchableOpacity
onPress={() => this.props.navigation.navigate('tracking', { id: item.id})}>
<Text>{item.awb}</Text>
</TouchableOpacity>如果你想携带所有的物品,你可以这样传递它。
<TouchableOpacity
onPress={() => this.props.navigation.navigate('tracking', {
id: item.id,
item: item})}>
<Text>{item.awb}</Text>
</TouchableOpacity>https://stackoverflow.com/questions/61316625
复制相似问题