javascript - 试图获取 api 但做出反应会出错
问题描述
我正在尝试获取 api 的数据,但一直存在问题。一旦获取过程结束,我有一个函数可以将数据设置为新数据,并且我试图将其作为回调调用。这是代码:
我获取数据的函数:
async function getAPI(url, settings, callback) {
const response = await fetch(url, settings)
var result = await response.json()
callback(result)
}
我在哪里使用它:
const callback = (newVal) => {
// Return if newVal === ""
if (newVal === "") {
return
}
// Delete the previous data & set the new searchVal
setData(null)
setSearchVal(newVal)
// Get API
const url = `https://movies-tvshows-data-imdb.p.rapidapi.com/?type=get-movies-by-title&title=${newVal}`
const settings = {
"method": "GET",
"headers": {
"x-rapidapi-key": "xyz",
"x-rapidapi-host": "movies-tvshows-data-imdb.p.rapidapi.com"
}
}
getAPI(url, settings, setData)
}
我在哪里调用回调(顺便说一下,回调被正确调用,因为我已经完成了该部分的调试):
return (
<div id="movie-page">
<MovieBar callback={(val)=>{callback(val)}} />
</div>
)
如果您认为这里没有错误,并且代码中可能还有其他原因导致它,请评论它,以便我更新问题。提前致谢 :)
更新 1:
我还想添加我的初始声明,它们是:
const [searchVal, setSearchVal] = useState(null)
const [searchOn, setSearchOn] = useState(false)
const [scene, setScene] = useState(null)
const [data, setData] = useState(null)
顺便说一句,我还没有开始研究其中的一些。所以记住这一点。
解决方案
我不知道我怎么错过了这个,我只是忘记了导出功能。
这是我导出函数的初始代码:
async function getAPI(url, settings, callback) {
const response = await fetch(url, settings)
var result = await response.json()
callback(result)
}
我只是export
在开头添加了,就是这样。
推荐阅读
- c# - 合并两个列表以获得第三个列表两个列表都有两个共同和一个不同的列 c#
- php - 如何将默认数组添加到给定的数组列表中?
- excel - Excel VBA粘贴到活动单元格的偏移量
- android-fragments - MvvmCross6 异常中的片段
- reactjs - 在 mobx-persist 中重新水化树结构的问题
- mongodb - 如何从 api 获得响应,但不是 504 网关超时问题
- python - 访问 webdriver 变量到另一个 def 函数
- python-3.x - Ubuntu 18.10 中日志目录的权限错误
- java - JGit - 如何重用 DiffFormatter
- java - 禁用DH密钥对好吗?