React.js - 如何使用 axios POST 方法将数据从 div 传递到函数?

Posted

技术标签:

【中文标题】React.js - 如何使用 axios POST 方法将数据从 div 传递到函数?【英文标题】:React.js - How do I pass data from a div to a function with axios POST method? 【发布时间】:2022-01-14 11:57:32 【问题描述】:

我想将字符串从映射元素传递到一个函数,该函数应该在单击所述元素时触发,然后执行发布请求。这是函数:

const update = () => 
    axios.
      post("http://localhost:4000/api/albums/favorites", "???")
      .then(res => 
        console.log(res);
      )
  

这是我的映射数据所在的位置:

return(
    <Container className="d-flex flex-column py-2" style= height: "100vh" >
      <Form.Control
        type="search"
        placeholder="Search Songs/Artists"
        value=search
        onChange=e => setSearch(e.target.value)
      />
      <div className="flex-grow-1 my-100" style= overflowY: "auto" >
        <div className="d-flex m-2 align-items-center card-body">  
          searchResult.map(result => (
            <div style= cursor: "pointer"  onClick=update> 
              <img key=result.imageUrl src=result.imageUrl />
              result.artistName - result.albumName
            </div>
          ))
        </div>
      </div>
    </Container>
  );

这是我通过 api 从搜索栏的结果中获得的数据。我应该如何引用数据来代替???在更新功能?我试图寻找答案,但我可能不知道如何很好地表达我的问题。

【问题讨论】:

【参考方案1】:

您可以像这样将每个结果传递给您的 update 函数

<div style= cursor: "pointer"  onClick=() => update(result)> 
...

并使您的更新函数接受您将在 axios 请求中使用的参数

const update = (data) => 
    axios.
      post("http://localhost:4000/api/albums/favorites", data)
      .then(res => 
        console.log(res);
      )

现在每个结果 div 在点击时都会触发更新功能,但会绑定到它的数据

【讨论】:

@mehawelm11 如果完全回答了您的问题,请考虑将答案标记为已接受(下方的复选标记)。

以上是关于React.js - 如何使用 axios POST 方法将数据从 div 传递到函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 axios 拦截器中编写重定向而不在 React JS 中重新加载

使用 Axios 将对象从 React.js 发布到 PHP

react.js 使用 axios 发布数据到 php,但是 php echo 为空

使用Axios,React.js和Spring进行简单的发布请求

Axios 没有使用 useEffect() (React Js) [重复]

Axios 发布请求在 React JS 中不起作用