javascript - 下一篇 JS 如何将状态传递给 getStaticProps
问题描述
我正在使用 getStaticProps 从 IGDB 数据库中获取游戏。一切正常,但现在我想使用文本输入和按钮来实现搜索游戏。我正在使用 onChange 从文本输入中获取价值,我需要将状态传递给搜索查询,但我如何在函数之外执行此操作?这是代码:
export async function getStaticProps() {
const response = await fetch(
`https://api.igdb.com/v4/games/?fields=cover.*,name;search=${HERE I NEED TO PASS INPUT VALUE};`,
{
headers: {
'Accept': 'application/json',
'Client-ID': 'my client_id',
'Authorization': 'Bearer my_authorization',
}
})
const data = await response.json()
return {
props: {
apiGames: data
}
}
}
const Library = ({ apiGames }) => {
const [inputValue, setInputValue] = useState('')
return (
<input type="text" onChange={(e) => setInputValue(e.target.value)} placeholder='Start searching game...' />
)
}
解决方案
getStaticProps
仅在构建时运行。您可以使用这种方法获取初始数据,但由于您的搜索参数是在客户端生成的,因此您还需要在客户端上获取数据。您可以使用fetch
api 或 axios 之类的库
推荐阅读
- javascript - 如何保留非排序数组(Javascript)
- angular - 当 Ionic 4 中不存在事件时如何运行该函数
- python - Python melt dataframe based on values of comma-separated character vector column
- microsoft-graph-api - 如果仅更改 is_read 字段,则消息增量 API 无法返回字段
- haskell - 如何在 Haskell 中找到坐标元组列表的平均值?
- oracle-adf - 以编程方式更新 adf 表单
- sql - 即使重复值不同,也将数据分组到不同的分区
- c - Math equation user input validation
- javascript - 文本到语音音频在浏览器中无法同步工作
- spring - 我们应该在 Hibernate 和 Springboot 中使用什么。SessionFactory 或 EntityManager