javascript - 对 axios 检索到的数据的无效钩子调用
问题描述
我正在尝试从此处检索 JSON 数据,然后更新功能组件中的状态。尽管代码看起来不错,但我收到一个错误,说它是一个无效的钩子调用。
在 react 文档中,它说我可能在同一个文件夹中有 2 个不同的 react 应用程序,但是我用他们给出的命令检查了它,只有 1 个。但是我从 django 服务器运行它,并且有一个不同的 react 应用程序一个不同的 django 应用程序(所以在一个完全不同的文件夹中)。
const App = () => {
const [posts, setPosts] = useState([]);
useEffect(() => {
let url = "https://jsonplaceholder.typicode.com/posts";
axios.get(url).then(res => {
console.log(res.data);
// The code crashes here saying that it is an invalid hook call
useState(res.data);
}).catch(err => console.log(err));
}, []);
return (
<div>
This is just a place holder.
</div>
);
}
我觉得这可能与 django 项目中的其他反应应用程序有关,但如果有人能看到我看不到的东西,我将不胜感激。
编辑 我意识到我试图在 useEffect 钩子中调用 useState(),而我本应该使用函数中已经定义的 setPosts 函数。
解决方案
// The code crashes here saying that it is an invalid hook call
它在那里崩溃是因为您没有正确使用状态挂钩。你应该打电话setPosts
而不是useState
. 请参阅文档。
推荐阅读
- shell - 带有 IF 条件的 AWK 输出
- android - Intent 无法识别 Activity
- string - 如何逐行读取批处理文件中多余字符的文本文件?允许限制行长。(Windows,批处理脚本)
- ssh - VSCode 远程 SSH 连接失败
- reactjs - ESLint react-hooks - 'exhaustive-deps' 规则 - 真的没有更好的方法吗?
- rabbitmq - 经纪人中总是只有一个交易所吗?
- python - 将python中程序的输出保存为图像
- python - Python 3.7.6 PIP 18.1 在 pyinstaller 升级期间看不到 Setuptools
- html - 我可以获取 div 标签的内部值并将它们转换为(最好是 excel)表吗
- jenkins - 詹金斯没有合并作业目录中复制的作业