javascript - 如何在 gatsby js 中将异步获取请求的结果放入我的布局并做出反应
问题描述
我有以下 fetchData 异步函数从 lambda 函数返回一条消息我想获取该响应并将其转储到我的页面上我正在使用 react-hooks-async 包,其中包含一个 useEffect。但是,当我在 useAsyncTask 内启动该函数时,它只会继续运行并且永远不会得到结果。如果我将一个按钮连接到 start() 函数并且它会显示正确,我可以做到这一点,但我希望它在加载时运行。
我正在使用 Gatsby JS 并做出反应
var fetchData = async function run() {
const response = await fetch(fetchUrl, {
method: "post",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
customer_id: parsed.session_id,
}),
})
.then(res => {
return res.json()
})
.catch(error => console.log(error))
console.log(response)
return response
}
const Customer = () => {
const { start, started, result } = useAsyncTask(fetchData)
useEffect(() => {
console.log("result")
console.log(result)
console.log("result ends")
start()
}, [result])
return (
<div>
{started && "Fetching..."}
<div>Name: {result && result.message.customer_id}</div>
</div>
)
}
解决方案
我过度设计了它。所需要的只是以下
fetchData().then(value => console.log(value))
const Test = () => {
const [data, setData] = useState("")
useEffect(() => {
fetchData().then(test => {
setData(test)
})
}, [])
return data && <p>{data.message.customer_id}</p>
}
推荐阅读
- css - 在 Shopify 的集合页面上添加条件类
- python - 为什么 for 循环不重置 range() 函数?
- python - 如何修复 TypeError:'int' 对象不可迭代?
- swift - @Published in an ObservableObject vs @State on a View 导致 SwiftUI 中不可预测的更新行为
- database - SyntaxError:尝试将 Mongo Atlas 集合导出到本地计算机时缺少分号
- wpf - 为什么我在 powershell 中添加节点时不断获取属性列表?
- amazon-web-services - 如何防止搜索引擎爬虫为 AWS 上的域编制索引?
- reactjs - React+Webpack+Babel:模块解析失败:意外的令牌“<”
- php - 将自定义分类中的术语元添加到购物车项目
- python-3.x - Ingenico Lane3000 无法与我的 python 应用程序连接