我在使用rtk时遇到了一个关于如何顺序使用变异和查询的情况。在我的用例中,在像/status/:id/:version
这样的路由中,我需要基于Id和版本创建一个作业,然后监视创建的进度(大约需要30秒)。
const {id, version} = useParams()
const pollRef = useRef(1000)
const [createJob, {data: postData, error, isSuccess}] = useCreateJobMutation()
const {data, ...} = useGetJobIdQuery(postData[0].id, { pollingInterval: pollRef.current })
if (data.progress === 100) {
pollRef.current = 0 // stop polling GET route
use data ...
}
useEffect(()=> {
createJob(newJob) // newJob is created based on id, version
}, [])
我需要等待postData有效(不是未定义),问题是如何将变异的结果发送到查询而不违反钩子规则。(我得到错误在上一次渲染中渲染了更多钩子。)
if (isSuccess) {
useGetJobIdQuery(...) // violate hook rules
}
useCreateJobMutation()
和useGetJobIdQuery()
单独使用时工作正常,但不能一起使用
1条答案
按热度按时间w1jd8yoj1#
您可以跳过查询: