Estoy buscando pasar un valor de ID almacenado con éxito en el estado Redux a una consulta RTK, para un comportamiento de recuperación dinámico.
Sin embargo, cuando paso el objeto de estado, solo recibo una respuesta parcial de una matriz de diferentes longitudes (a veces ningún objeto, a veces dos, muy ocasionalmente la respuesta completa).
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"], }),NóminaEntries.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 } Intuyo que hay algún tipo de problema de tiempo de espera entre obtener del estado y llamar/completar la consulta, pero no puedo encontrar un patrón para superar esto. También intenté implementar useEffect() para garantizar que el valor de ID del estado estuviera disponible, pero no tuve éxito.
Revisé Construir una URL de base dinámica usando Redux State pero no estoy seguro de si este es el enfoque correcto. Se agradece cualquier apoyo para aclarar mi comprensión. Gracias por adelantado.
Resolví esto entendiendo que mi frontend se adelantaba al proceso de finalización del lado del servidor. De ahí la devolución parcial de la fecha: el servidor solo devolvía los datos disponibles en el momento de la solicitud de interfaz.
Resolví pasando un objeto "completo" a la interfaz para habilitar la acción de la redirección del enrutador de la interfaz.