Si ejecuto mi código, envío (addPost (formData)); se ejecuta y mientras thunkAPI está ejecutando navigation.navigate('PostList'); se ejecuta y pasa a la pantalla PostList antes de que finalicen las acciones.
Pero lo que quiero hacer es cuando ejecuto la función sendPostfunc, dispatch(addPost(formData)); se activa en primer lugar y, en segundo lugar, thunkAPI.dispatch(postSlice.actions.purePost()); se ejecuta y en tercer lugar, thunkAPI.dispatch(loadPosts()); se ejecuta y la acción se completa, después de eso navigation.navigate('PostList'); Quiero hacer que se ejecute e ir a la pantalla PostList.
¿Cómo puedo arreglar mi código?
este es mi codigo
(Publicar.tsx)
const sendPostfunc = useCallback(async () => { dispatch(addPost(formData)); navigation.navigate('PostList'); }, [dispatch,navigation]);(acción.tsx)
export const addPost = createAsyncThunk( 'post/addPost', async (data: Object, thunkAPI) => { try { const response = await axios.post('/post/addPost', data); thunkAPI.dispatch(postSlice.actions.purePost()); thunkAPI.dispatch(loadPosts()); return response.data; } catch (error: any) { return thunkAPI.rejectWithValue(error.response.data); } }, );navigate a addPost (pásela como un argumento adicional, algo así como redirectTo , una devolución de llamada que se ejecutará después de que se hayan cargado las publicaciones.loadPosts también es un thunk, deje que devuelva una promesa para que pueda await que este trabajo se realice dentro addPost , explicado aquí: https://redux.js.org/usage/writing-logic-thunks#returning-values-from- gracias