当前位置: 首页 > 知识库问答 >
问题:

在reactjs中添加到json对象的链接

鲁英卫
2023-03-14

我有一个从api获取的json数据。假设表是(下表只是一个示例)

  Name | Age
   A      20
   B.     25

现在,我从api获取名称和年龄内容,并将其显示为表格式(我使用React js)。现在,我想使名称的内容(如a和B)可点击。当我单击A时,它应该将我链接到另一个api url(这里的问题是每个名称对象的api url都不同),因此

A = http://example/name?=A 
B = http://example/name?=B

现在,如何将我的名称对象内容(A,B)链接到api(url),并使其获取数据并显示为另一个页面上的表。

所以,当我点击一个,它应该会把我发送到另一个网址,在那个网页上,我应该能够看到(我刚刚被发送到的api网址)在表格中提取的数据。

我的代码:

     import React, { Component } from "react";

    export default class Stocks extends Component {
  constructor(props) {
    super(props);
    this.state = {
      items: [],
      isLoaded: false,
      search: "",
    };
  }

  updateSearch(event) {
    this.setState({ search: event.target.value });
  }

  componentDidMount() {
    fetch("http://131.181.190.87:3001/all")
      .then((res) => res.json())
      .then((json) => {
        this.setState({
          isLoaded: true,
          items: json,
        });
      });
  }

  render() {
    let filteredItems = this.state.items.filter((item) => {
      return (
        item.symbol.toUpperCase().indexOf(this.state.search.toUpperCase()) !==
          -1 || item.industry.indexOf(this.state.search) !== -1
      );
    });
    var { isLoaded, items } = this.state;
    if (!isLoaded) {
      return <div>Loading...</div>;
    } else {
      return (
        <div>
          <form className="form-for-table-search">
            SelectSymbol: &emsp;
            <input
              type="text"
              value={this.state.search}
              onChange={this.updateSearch.bind(this)}
            />
            &emsp; &emsp;{" "}
            <button type="button" className="btn-submit">
              Search
            </button>
            <br />
            &emsp; Industry: &emsp; &emsp; &emsp;
            <input
              type="text"
              value={this.state.search}
              onChange={this.updateSearch.bind(this)}
            />
            <button type="button" className="btn-submit">
              Search
            </button>
            &emsp; &emsp; History of Symbol and date : &emsp; &emsp; &emsp;
            <input
              type="text"
              value={this.state.search}
              onChange={this.updateSearch.bind(this)}
            />
            &emsp; &emsp;
            <button type="button" className="btn-submit">
              Search
            </button>
          </form>
          <table border={2} cellPadding={1}>
            <thead>
              <tr>
                <th>Symbol</th>
                <th>Name</th>
                <th>Industry</th>
              </tr>
            </thead>

            <tbody>
              {filteredItems.map((item) => (
                <tr>
                  <td key={item.symbol}>{item.symbol}</td>
                  <td key={item.name}>{item.name}</td>
                  <td key={item.industry}>{item.industry}</td>
                </tr>
              ))}
              }
            </tbody>
          </table>
        </div>
      );
    }
  }
}

任何帮助是值得赞赏的。谢谢。

共有1个答案

孙化
2023-03-14

您可以动态地创建您的点击处理程序来传递您需要的信息,以创建用于获取的url。大概是这样的:

handleClick = name => 
    fetch(`http://example.com/name?=${name}`).then((data) => {
        // handle redirect to new page
    })
<td key={item.name} onClick={() => handleClick(item.name)}>{item.name}</td>

在不了解你的应用程序如何设置的情况下,我无法就如何重定向到你的新页面给出正确的答案。

如果您使用的是React路由器,您可以使用重定向或历史记录将数据传递给您的显示表组件。或者,您可以在表单元格中呈现链接,将名称作为道具传递给新页面组件,并让该组件在挂载时获取。

 类似资料:
  • 问题内容: 我在使用Scala将字段添加到Play Framework中的Json对象时遇到问题: 我有一个包含数据的案例类。例如: 并且我能够使用Json Writes创建一个Json对象: 并且Json看起来像: 假设我想向Json对象添加一个附加的’c’字段。结果: 如何在不创建新案例类或使用Json.obj自己创建Json对象的情况下做到这一点?我正在寻找类似的东西: 任何帮助表示赞赏!

  • 我想从JSON响应中添加链接:https://xxx.xxx/posters/poster.jpg,这里是我的代码: 下面是JSON响应: 如何让它变成这样:

  • 问题内容: 我正在尝试自动将新对象添加到现有json文件中。我在网上四处张望,却发现添加了数据和东西,但没有发现整个对象。这就是我要编辑的文件的外观: 我想去 谢谢您的所有答复,但我认为所有人都无法完全理解我的意思。我已经尝试了一些答案,但是后来我明白了: 我想在[]之间保持平衡。 问题答案: 如果使用json.NET,则可以简单地反序列化和序列化json。

  • 我在demo.json中有这个json对象

  • 问题内容: 我需要添加一个通常为http:\ somewebsite.com \ somepage.asp格式的URL。当我使用上述URL创建字符串并将其添加到JSON对象json中时 使用 它附加了一个额外的“ \”,当我检查输出时,就像 当我将URL作为 json输出时 您能帮我按原样检索URL吗? 谢谢 问题答案: 您的JSON库会自动转义斜线等字符。在接收端,您必须使用像这样的函数删除那些

  • 问题内容: 我有一个JSON对象,该对象在页面加载时启动,如下所示: 有没有一种方法可以在第一个元素之前注入一个元素,以便在执行a时,新元素将在对象启动时添加的元素之前循环遍历? 原因是,我正在向用户显示一些项目。当用户通过javascript添加新项目时,我希望此新项目显示在所有现有项目上方,但是当我添加新项目时,即 然后,JSON对象如下所示: 而不是我想要的是: 有任何想法吗? 问题答案: