我有一个从json提取的名称列表,这些名称会反复遍历并发布在PersonList页面上。我要单击特定人员的“查看个人资料”按钮,它将重定向到他们的PersonShow
im将数据称为变量“ persons”。
PersonList页面。 -遍历json并将每个人打印到列表中。在“查看个人资料”上,应转到不重复人员列表。
getPersons() {
return persons.filter(person => {
return person;
});
let persons;
persons = this.getPersons().map((person, id) => {
return (
<View
key={id}
}}
>
<Text>{person.name}</Text>
<Button
title={'View Profile'}
key={id}
onPress={() =>
this.props.navigation.navigate('PersonShow', {
personId: `${person.id}`,
})} </Button>
PersonShow页面。它应该在视图资料上具有要引用的特定人员的person.name
render() {
person = persons.map((person, id) => {
key = { id };
person => person.id === this.props.navigation.state.params.personId;
});
return (
<View>
<Text>
{persons.name}
答案 0 :(得分:0)
在person
函数中将PersonShow
对象传递到onPress
页面:
onPress={() =>
this.props.navigation.navigate('PersonShow', {
person
})}
在PersonShow
页面中,您可以通过导航参数获取person
对象,如下所示:
render() {
let person = this.props.navigation.state.params.person;
return (
<View>
<Text>
{persons.name}
..
答案 1 :(得分:0)
•在“个人列表”页面上,当用户单击“查看个人资料”按钮时,可以将个人的名称保存在浏览器cookie中。
•然后,您可以重定向到PersonShow页面,并在该页面中显示上一页存储在cookie中的值。
HTML是无状态的。当您让用户重定向到新页面时,您需要某种内存来存储整个JSON的特定部分。使用浏览器cookie是存储该数据的一种方法。 JavaScript可以读写浏览器cookie。
如果在您的浏览器中禁用了cookie,那么当您允许用户转到PersonShow页面时,您将必须使用用JAVA,PHP,C#等编写的服务器端脚本来记住人名。