javascript - 带有钩子的 React 中 JSON 响应的下拉列表
问题描述
我想从我从 REST API 获得的数据中创建一个下拉列表。不幸的是,我已经尝试过的方法不起作用,下拉列表中没有显示任何内容。请参阅代码以供参考。它说 '
×
TypeError: teams.current.map is not a function
'
我的对象看起来像
[
{
"id": 5,
"name": "hasda"
},
{
"id": 6,
"name": "asdasd"
}
]
我看了一下那个链接,但没有太大帮助。我希望你能帮帮我
import React, { useState, useEffect, useRef } from "react";
import { useHistory } from "react-router-dom";
import axios from 'axios'
function Navbar() {
const [team, setTeam] = useState([]);
useEffect(() => {
getTeams()
}, []);
const getTeams = () => {
axios
.get(`${process.env.REACT_APP_API_URL}/team/all`, {})
.then((res) => {
console.log(res.data);
setTeam(res.data)
})
.catch((error) => {
console.log(error)
})
}
return (
<p className="navbar-item">Mannschaften</p>
<div className="navbar-dropdown">
{/* {team.current.map((d, i) => (
<a className="navbar-item" href={i.mannschaftsname}>{i.mannschaftsname}</a>
))} */}
{/* {
this.state.team.map((obj) => {
return <option team={obj.id}>{obj.name}</option>
})
} */}
<a className="navbar-item" href="/login">Test</a>
</div>
</div>
);
}
export default Navbar;
解决方案
您的州名是团队而不是团队。因此,您可以尝试以下操作:
<select>
{
team?.map((obj) => {
return <option team={obj.id}>{obj.name}</option>
})
}
</select>
推荐阅读
- java - HTTP 状态 500 – getDate() 的内部服务器错误
- python - 我应该更新 Python 模块吗?
- ajax - 注册后laravel中的错误302
- scala - 函数转换字符串列表中的数字列表 scala
- c# - 返回 windows 桌面 MonoGame 时的错误
- html - 使图像适合 CSS Grid
- node.js - 在特定日期删除 mongodb 子文档
- python - 我的标点符号和字符的情节只是没有出现。需要建议
- python - 如何在 python 中对多个分类特征进行一次热编码,而不会被困在虚拟变量中
- javascript - 如何存储和访问元素上的数据属性,例如 React 中的选择选项