如何在react native中抛出id参数并在listview中显示基于id的详细数据



我正在学习react native,这里我有一个通过API获取的列表视图,响应结果如下:

{
"status": 200,
"error": false,
"data": [
{
"id": "1",
"awb": "RJCSS1728999298839828",
"name": "amar",
"destination": "Bandung"
}
]
}

在这里,我使用listview显示数据,它只显示awb。我想问,如何抛出id参数,当我点击列表视图时,它会显示详细信息?

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>

我犯了一个错误错误:文本字符串必须在组件中呈现

您的传递方式不对。以下是你应该如何通过

<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>

最新更新