reactjs - 如何使用 ReactJS 从端点获取数据
问题描述
在此处输入图像描述我想使用这种方式获取数据:
import React, { useState, useEffect } from 'react';
const Home = () => {
useEffect (async () =>{
const response = await fetch('http://localhost:4000/user')
const myJson = await response.json();
console.log(JSON.stringify(myJson));
})
return(
<div>
<h1>Home Page</h1>
</div>
)
}
export default Home;
localhost:4000 (使用节点 js 生成)的结果是:{ _id: 5da4a2066f90a24d4f82787a, name: 'Gregor', email: 'test@eee.com', age: 3, hasCar: false, favColors: [ 'green', 'red' ] }
. 问题是我无法从这个端点获取数据,但是当我放置一个测试 API 而不是我的本地主机时,代码可以工作。如何使用我的实现从该端点获取数据?我的代码有什么问题?
解决方案
要消除该警告,您需要将异步片段提取到它自己的函数中。就像是:
useEffect (() => {
const fetchData = async () => {
const response = await fetch('http://localhost:4000/user')
const myJson = response.json()
console.log(JSON.stringify(myJson))
}
fetchData()
}, [])
但这不应该是您无法获取数据的原因。您需要确保http://localhost:4000的 api启用了 CORS,以便 react 可以与之通信。如果您无法更改,则需要设置代理:https ://create-react-app.dev/docs/proxying-api-requests-in-development/
推荐阅读
- python - 具有不同类型元素的 Python ndarray
- typescript - 如何配置代码气候以忽略带有日志语句的代码行
- android - 如何在 MPAndroid 条形图中传递字符串和浮点值
- elasticsearch - 通过索引文档中查询词的位置对 Elasticsearch 进行评分
- jquery - jQuery:如何获取当前激活选项卡的 id
- python - 如何将字典列表转换为字典
- hibernate - Hibernate 多对多映射删除子实体
- heroku - 从 bitbucket 部署到 heroku
- python - RunInstances 操作:参数“iamInstanceProfile.name”不能与“iamInstanceProfile.arn”结合使用
- php - 在laravel查询中加入表和分组时如何计数