如何在特定页面上显示来自JSON的特定对象?

时间:2019-04-12 00:09:38

标签: react-native

我有一个从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}

2 个答案:

答案 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#等编写的服务器端脚本来记住人名。