我目前正在构建一个使用React作为前端,Ruby on Rails Webpacker应用程序。 我已经到了创建所有必要的调用发送到Rails API所需的查询的阶段,我松散地遵循了这个教程https://www.youtube.com/watch?v=0bKc_ch6MZY (https://github.com/daryanka/react-query-tutorial/blob/master/src/containers/Post.js, https://github.com/daryanka/react-query-tutorial/blob/master/src/Queries.js),以编写一些基于axios的查询函数,可以与react-query一起使用。 当URL为硬编码字符串时,我没有问题使查询的行为符合预期。当我尝试传递参数以创建动态URL时,我遇到了无法访问该参数的问题,具体来说是“prodId”参数。但是我注意到“prodId”位于“key”参数数组中,如下所示:
queryKey: Array(2)
0: "product"
1: "1"
length: 2
enter code here
我可以直接从那里访问它,但这种方法似乎有点奇怪。我也没有找到任何尝试从查询键数组中访问参数的示例或文档。关于传递参数,我想知道我做错了什么?在react-query中是否有一些语法更改我没有考虑到?
react-query@^3.17.2
webpacker (5.2.1)
axios@^0.21.1
//Product.js
import axios from "axios"
import { getProduct } from "../../queries/products"
import { useQuery } from "react-query"
const prodId= '1'
const { data } = useQuery(['product', prodId], getProduct)
//queries/products.js
import axios from 'axios'
export const getProduct = async (key, { prodId }) => {
console.log(opid)
const { data } = await axios.get(`/api/v1/products/${prodId}`)
return data
}
useInfiniteQuery
中传递查询上下文以及用于获取下一页的pageParam
参数? - KarthikNayak98pageParam
只是上下文中的另一个字段,您可以像解构queryKey
一样解构它,并且它将根据您从getNextPagePraam
返回的内容由react-query填充。 - TkDodouseQuery( ... , {onError:(error)=>{...}})
- Bersan