我希望将一个成功地存储在Redux状态中的ID值传递给RTK查询,以便动态获取行为。
但是,当我传递state对象时,我只接收到长度不同的数组的部分响应(有时没有对象,有时是两个,有时是整个响应)。
src/features/api/apiPayrollEntries.ts
// READ All Payroll Entries by Payroll ID
getAllPayrollEntriesByPayrollId: builder.query<PayrollEntry[], string>({
query: (payrollId) => `/payroll-entries/payroll/${payrollId}`,
providesTags: ["PayrollEntry"],
}),PayrollEntries.tsx
const PayrollEntries: FC = () => {
const provisionedPayrollId: string = useAppSelector(
(state: any) => state.provisionedPayroll.id
);
const { data: dataPayrollPayrollEntries } =
useGetAllPayrollEntriesByPayrollIdQuery(provisionedPayrollId);
console.log(provisionedPayrollId);
// => "ed7c6cc9-8835-4974-ac0d-4cf54e917898"
console.log(dataPayrollPayrollEntries);
// => returns array of varying (0-all) results
// const { data: dataPayrollPayrollEntries } =
// useGetAllPayrollEntriesByPayrollIdQuery(
// "ed7c6cc9-8835-4974-ac0d-4cf54e917898"
// );
// => reliably returns all results
}我的直觉是,在从状态获取和调用/完成查询之间存在某种超时问题,但是我找不到一种模式来克服这一点。我还尝试实现useEffect(),以确保状态的ID值是可用的,但没有成功。
我已经复习过使用Redux状态构造动态基URL,但不确定这是否是正确的方法?任何支持澄清我的理解是非常感谢的。提前谢谢。
发布于 2022-08-06 11:44:29
我解决了这个问题,因为我的前端在完成服务器端的过程中处于领先地位。因此,部分返回日期--服务器只返回前端请求时可用的数据。
我通过向前端传递一个“完整”对象来解决问题,以启用前端路由器的重定向操作。
https://stackoverflow.com/questions/73101683
复制相似问题