node.js - React 不显示从 axios 返回的数组的所有值
问题描述
这是我的后端NodeJS
代码:
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const cors = require('cors');
app.get('/getEmployees', cors(), (req, res) => {
res.send([
'00001 | Alice',
'00002 | Bob',
'00003 | Charlie',
'00004 | Dave',
'00005 | Eve',
'00006 | Frank',
]);
});
app.listen(port, () => {
console.log(`Server is up on port ${port}`);
});
这是我的前端 React 代码:
import React, { useState, useEffect } from 'react';
import classes from './App.module.css';
import axios from 'axios';
function App() {
const [employeesList, setEmployeesList] = useState(null);
useEffect(() => {
axios.get('http://127.0.0.1:3000/getEmployees').then((response) => {
console.log(response.data); // Checking value
let list = [];
response.data.map((employee) => {
list.push(<option>{employee}</option>)
return setEmployeesList(list)
})
});
}, []);
return (
<div className={classes.App}>
Please select employee:
<select>
{employeesList}
</select>
</div>
);
};
export default App;
当我运行它们时,我可以在浏览器上看到一个下拉列表,但只有一个值,即第一个员工 Alice。
如您所见,我console.log
在axios
函数中执行此操作,它会打印多个员工。我希望在下拉列表中看到所有员工。谁能帮我 ?
解决方案
更改useEffect
如下:
useEffect(() => {
axios.get('http://127.0.0.1:3000/getEmployees').then((response) => {
response.data.map((employee, index) => {
list.push(<option key={index.toString()}>{employee}</option>)
})
setEmployeesList(list);
});
}, []);
推荐阅读
- c# - 使用数据库数据的 C# 单元测试
- python - ContextDecorator 的继任者不起作用:“生成器”对象没有属性“添加”
- unit-testing - 由于先前的测试用例失败而引发的断言异常
- powershell - Powershell Hyper-V 远程执行没有收到响应
- c# - EF Linq 包含多个字符串
- javascript - “窗口”和“全局”类型的窗口对象有什么区别?
- php - 从另一个表中获取用户 ID 与用户 ID 匹配的数据的最简单方法
- python - 在 add_summary 中为 summary.value 中的值:AttributeError:“张量”对象没有属性“值”
- azure - Azure 中的 SQL 数据库不可靠
- python - 使用条件移位获取基于上一行