我试图创建一个从服务器获取数据的函数,它工作了。但我不确定这是不是正确的方法?
import React, { useState, useEffect } from "react";
const Fetch = () => {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
let res = await fetch(
"https://api.coindesk.com/v1/bpi/currentprice.json" //example and simple data
);
let response = await res.json();
setData(response.disclaimer); // parse json
console.log(response);
};
fetchData();
}, []);
return <div>{data}</div>;
};
export default Fetch; // don't run code snippet, not working, this component must be imported in main
我不确定是调用fetchData函数的地方。我在里面做那个有用吗?对地方?而且,这个电话只会发生一次?因为我用[]?
一般来说,你会怎么做这样的事情?
总的来说,你正朝着正确的方向前进。为了获取数据,您需要使用useEffect
并传递[]
作为第二个参数,以确保它只在初始装入时触发。
我相信您可以从对fetchjson
函数进行解耦并使其更加通用中受益,例如:
const fetchJson = async (url) => {
const response = await fetch(url);
return response.json();
};
const Fetch = () => {
const [data, setData] = useState(null);
useEffect(() => {
fetchJson("https://api.coindesk.com/v1/bpi/currentprice.json")
.then(({ disclaimer }) => setData(disclaimer));
}, []);
return <div>{data}</div>;
};
当我的组件最初挂载时,我使用useEffect钩子异步获取数据。我还想使用一个效果(或另一个更适合这种情况的钩子)来转换这些数据,同样是在我的组件最初挂载时。 引用上下文并初始化增强节本地状态 在挂载上获取数据(此工作原理) 转换获取的数据和 这里的问题是此时仍然为空 当我把上面的内容从use效应中拉出来,放在一个基本的if语句中时,它就起作用了(无限循环仍然是一个问题)... 我知道我应该根据R
问题内容: 我正在寻找一种使用Node v7.6或更高版本的方法,以在调用异步函数时获得Bluebird Promise(或任何非本机Promise)。 用同样的方式,我可以做: 请参阅: 我可以使用global.Promise = require(“ bluebird”) 我希望能够执行以下操作: 我知道我可以随时使用类似的东西: 但是我很 好奇 是否有办法更改所返回的默认Promise 。构造
问题内容: 我正在尝试使用新的react useReducer API来获取一些数据,并停留在需要异步获取的阶段。我只是不知道如何:/ 如何将数据获取放置在switch语句中,或者这不是应该完成的方式? 我试图这样做,但它不能与异步一起工作;( 问题答案: 这是一个有趣的案例,示例没有涉及。我认为减速器不是异步加载的正确位置。来自Redux的心态,您通常会将数据加载到其他位置,例如以thunk,可
我正在尝试做一个简单的应用程序,加载数据并对其执行一个操作.所以我的想法是做这个异步。 我有3个数据源,我想异步加载它们。例如data1.xml、data2.xml和data3.xml所有文件加载起来都相当大,所以需要一些时间(这就是为什么我想要异步的原因)。 例如,我创建了一个包含3个文本框的窗口,这些文本框都绑定到一个特定的属性(Text1、Text2、Text3)和一个按钮。当我点击按钮时,
问题内容: 我写了这段代码 然后我尝试在另一个文件中使用它 我有一个错误 “等待仅在异步功能中有效” 有什么问题 问题答案: 错误不是指而是。 我利用这个问题的机会来告诉你一个已知的反模式的使用方法:。 错误 正确 另外,要知道有一个正确且重要的特殊情况:(使用try / catch)
太长,读不下去了如何模拟或使用带有数组的道具强制重置我的组件? 我正在实现一个组件,它显示一个计时器,并在达到零时执行回调。目的是让回调更新对象列表。后一个组件由新的React钩子和组成。 包含对计时器启动时间和剩余时间的引用。设置每秒钟调用一次的间隔,以更新剩余的时间,并检查是否应该调用回调。 该组件并不意味着重新安排计时器,或者在间隔达到零时保持间隔,它应该执行回调并空闲。为了让计时器刷新,我