javascript - 无法访问使用 useState 挂钩复制的数据
问题描述
我无法将数据复制到 elemnents 我在这里做错了什么?我是反应新手。这是一个json
import React, { useEffect, useState } from 'react';
import './App.css';
import axios from 'axios';
function App() {
const [elements, setElements] = useState([]);
useEffect(() => {
const res = async () => {
const result = await axios.get('/data');
const data = result.data;
setElements(elements => [...elements, data]);
};
res();
}, []);
console.log(elements.map(element => console.log(element)));
return (
<div className='App'>
Hello
{elements.map(element => (
<div key={element._id}>{element.name}</div>
))}
</div>
);
}
export default App;
解决方案
您不是将元素添加到数组而是整个数据集。只需将数据元素传播到您的“新”元素中,您就可以开始了。
你想改变这个
setElements(elements => [...elements, data]);
对此
setElements(elements => [...elements, ...data.elements]);
所以最终结果是
import React, { useEffect, useState } from 'react';
import './App.css';
import axios from 'axios';
function App() {
const [elements, setElements] = useState([]);
useEffect(() => {
const res = async () => {
const result = await axios.get('/data');
const data = result.data;
setElements(elements => [...elements, ...data.elements]);
};
res();
}, []);
return (
<div className='App'>
Hello
{elements.map(element => (
<div key={element._id}>{element.name}</div>
))}
</div>
);
}
export default App;
element._id
而且您的数据中不存在一件小事。
推荐阅读
- python - 如何在 Flask 蓝图中 mock.patch 一个函数?
- javascript - 从 React App 中删除未使用的 materialize-css 和 js 代码以提高效率
- python - 使用良好 XML 中缺少的特定元素更新 XML
- c# - asp net core项目中的targetframeworks冲突
- google-bigquery - 致命标志解析错误:未知的命令行标志“hive_partitioning_source_uri_prefix”
- mysql - 从 MySQL 数据库中提取约会并在 MonthlyCalendar 中显示其详细信息
- c++ - 仅在大型数组上出现合并排序分段错误
- sqlite - 我的代码中是否存在我的列表视图没有显示任何内容的问题?
- mongodb - 如何从mongodb中提取数据(查找和删除)
- typescript - 如何使用 jest 和测试库来测试 typescript 应用程序?