【问题标题】:How to show specific object from JSON on specific page?如何在特定页面上显示来自 JSON 的特定对象?
【发布时间】:2023-03-05 20:46:02
【问题描述】:

我有一个从 json 中提取的名称列表,这些名称在 PersonList 页面上进行迭代并发布。我想点击特定人员的“查看个人资料”按钮,它会重定向到他们的 PersonShow

我将数据称为变量“persons”。

人员列表页面。 - 遍历 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>

人秀页面。它应该有我在视图配置文件中引用的特定人员的 person.name

render() {
    person = persons.map((person, id) => {
      key = { id };
      person => person.id === this.props.navigation.state.params.personId;
    });
    return (
      <View>
        <Text>
          {persons.name}

【问题讨论】:

  • 能否发个数据以便更好理解

标签: react-native


【解决方案1】:

onPress函数中将person对象传递给PersonShow页面:

onPress={() =>
    this.props.navigation.navigate('PersonShow', {
      person
})}

PersonShow 页面中,您可以通过如下导航参数获取person 对象:

render() {
    let person = this.props.navigation.state.params.person;
        return (
            <View>
                <Text>
                    {persons.name}
                    ..

【讨论】:

  • 正确。朋友,谢谢。我知道我把它弄得太复杂了。
【解决方案2】:

• 在 PersonList 页面上,您可以在用户单击“查看个人资料”按钮时将人员名称保存在浏览器 cookie 中。

• 然后您可以重定向到 PersonShow 页面,并在该页面中显示上一页存储在 cookie 中的值。

HTML 是无状态的。当您让用户重定向到新页面时,您需要某种内存来存储整个 JSON 的特定部分。使用浏览器 cookie 是存储该数据的一种方式。 Javascript 可以读取和写入浏览器 cookie。

如果在您的浏览器中禁用了 cookie,那么您将不得不使用用 JAVA、PHP、C# 等编写的服务器端脚本来记住人名,因为您让用户转到 PersonShow 页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多