【发布时间】:2023-01-14 08:46:47
【问题描述】:
我正在修改一些代码以使用 React Query 而不是 useEffect - 请参阅下面使用 React Query 的新代码:
import axios from 'axios';
import { useQuery } from '@tanstack/react-query'
function MembersList() {
const { data } = useQuery(["members"], () => {
return axios.get('http://localhost:3001/members').then((res) => res.data)
})
return (
<div className="List">
{data?.map((value, key) => {
return (
<div className="member">
<div key={member_id}> {value.forename} {value.surname}</div>
</div>
);
})}
</div>
);
}
export default MembersList;
我收到“member_id”未定义的错误 - 由我尝试将“member_id”添加为键的行引起(见下文)。
'Member_id' 是数组中的第一个字段,请参见下面来自 Insomnia 的 JSON:
JSON showing the 'member_id field'
该错误清楚地告诉我定义“member_id”,但我不确定具体如何或在何处执行此操作。
如果我删除 'key={member_id}' 然后代码会编译并运行,但会发出警告“列表中的每个孩子都应该有一个唯一的“key”道具。”。
我已经在 Stack Exchange 和 React 文档上回顾了许多类似的问题,但仍然看不出为什么我的代码不起作用。
【问题讨论】:
-
可能只需要它就像
key={value.member_id}> -
上面,加上键需要在返回的 JSX 的最外层元素上,所以向上移动一行到外层 div
标签: javascript reactjs arrays dictionary jsx