reactjs - 渲染后如何访问特定的 array.map 项目?
问题描述
在我的应用程序中,如果用户请求收养宠物,我会呈现一个确认按钮。如何启用确认按钮以访问它所呈现的用户的 ID?
import React, { useEffect, useState } from "react";
import { BACK_PORT } from "../../var";
import axios from "axios";
import { Button } from "react-bootstrap";
function UsersDashboard() {
const [users, setUsers] = useState([]);
const token = localStorage.getItem("auth-token");
useEffect(() => {
axios
.get(`${BACK_PORT}/data/users`, { headers: { "auth-token": token } })
.then(function (response) {
setUsers(response.data);
})
.catch(function (error) {
});
}, [token]);
const onConfirm = () => {
//Send ID of user
};
return users.map((item) => (
<div key={item._id}>
<div>Username: {item.name}</div>
{item.adoptionRequest && (
<div>Adoption Request: {item?.adoptionRequest}</div>
)}
{item.adoptionRequest && (
<div>
<Button onClick={onConfirm}>Confirm</Button>
</div>
)}
{item.adoptionRequest && <div>hello</div>}
</div>
));
}
export default UsersDashboard;
解决方案
代替
onClick={onConfirm}
和
onClick={() => onConfirm(item._id)}
import React, { useEffect, useState } from "react";
import { BACK_PORT } from "../../var";
import axios from "axios";
import { Button } from "react-bootstrap";
function UsersDashboard() {
const [users, setUsers] = useState([]);
const token = localStorage.getItem("auth-token");
useEffect(() => {
axios
.get(`${BACK_PORT}/data/users`, { headers: { "auth-token": token } })
.then(function (response) {
setUsers(response.data);
})
.catch(function (error) {
});
}, [token]);
const onConfirm = (userId) => {
console.log(userId)
//Send ID of user
};
return users.map((item) => (
<div key={item._id}>
<div>Username: {item.name}</div>
{item.adoptionRequest && (
<div>Adoption Request: {item?.adoptionRequest}</div>
)}
{item.adoptionRequest && (
<div>
<Button onClick={() => onConfirm(item._id)}>Confirm</Button>
</div>
)}
{item.adoptionRequest && <div>hello</div>}
</div>
));
}
export default UsersDashboard;
推荐阅读
- python - 选择一定范围的行创建一个db
- zapier - IFTTT - 从 URL 下载文件列表
- r - 用泊松 glm 绘制两条曲线,并在分类变量中进行交互
- javascript - 使用原型使用 JavaScript 计算圆柱体的体积
- debugging - 有没有办法通过 WiFi 部署/调试 Cordova Android Ionic 应用程序?
- c# - 将参数传递给 SqlDataAdapter 声明标量变量
- ios - 用于输入和输出的不同相机会话预设
- ios - 无法推断 Swift Bond bidirectionalBind 通用参数“B”
- javascript - javascript匹配特定名称加上/和它后面的字符
- javascript - Firebase 的嵌套 orderByChild