可以使用Redux Toolkit提供的getState方法来获取异步操作的状态,进而进行相应的处理。 对于Redux Toolkit相关的知识,你可以参考腾讯云提供的Redux Toolkit文档和相关示例: Redux Toolkit文档:https://redux-toolkit.js.org/ Redux Toolkit GitHub仓库:https://github.com/reduxjs/redux-toolkit 希望以上回答能够满足您...
另外,如果你非要手写thunk,看下边。 // We can also write thunks by hand, which may contain both sync and async logic.// Here's an example of conditionally dispatching actions based on current state.exportconstincrementIfOdd = (amount:number):AppThunk=>(dispatch, getState) =>{constcurrentValu...
在回调函数中,可以使用dispatch来分发其他的action,也可以使用getState来获取当前的state。回调函数可以返回一个Promise对象,用于处理异步操作的结果。 调度操作是通过dispatch来触发thunk action的执行。当调用createAsyncThunk返回的thunk action时,Redux会自动调用回调函数,并根据异步操作的状态(pending、fulfilled、rejected)...
getState是从createAsyncThunk的泛形中定义的。 举个例子,比如说我们修改一下redux官网给出的例子: https://redux-toolkit.js.org/usage/usage-with-typescript 现在,调用 thunkApi.getState() 我们就可以看到他可以获得state类型了 0 回复 收起回答 相似问题slice 中关于 createAsyncThunk 命名问题 56 0 1 ...
? action(dispatch, getState) : next(action) ) ) ); const App = () => { const dispatch = useDispatch(); React.useEffect(() => { //this will be aborted as soon as the next request is made dispatch( fetchUserById({ id: 'will abort', time: 200 }) ...
(state, action) => { state.userId = action.payload; }, }, }); export const { fetchStart, fetchSuccess, fetchError, setUserId } = mySlice.actions; // 修改后的 fetchData,读取 state export const fetchData = () => async (dispatch, getState) => { const state = getState(); // ...
上面我们仅仅对initialState进行了变换,在其中加入了 status和 error两个新字段,这么做有点多余,仅仅是为了告诉读者向redux数据中加入 “status”的具体位置。 那么加入这两个字段是还不够的,原因在于我们已经不需要在其中硬编码数据了,也就是说posts字段应该是空数组而不是写好的一些数据,也就是下面这样 ...
export const usersLoadMore = createAsyncThunk( 'users/loadMore', (_: SyntheticEvent | void, thunkApi) => { const state = thunkApi.getState() as RootState; const { filters, data } = state.users; return Api.get<User[]>('/api/users/search', { ...filters, offset: data.length, });...
initialState:{value:0,loading:'idle',userPoints:{},quickEntrance:[],banner:[],},reducers:{increment(state){state.value++;},decrement(state){state.value--;},setValue(state,{payload}){state.value=payload},extraReducers:builder=>{builder.addCase(getBasicInfo.pending,(state,action)=>{state....
在Thunk函数中我们可以编写异步逻辑的代码(例如 setTimeout 、Promise 和 async/await ),并且可以通过参数获取到dispatch,getState()。从而在异步操作执行后再diapacth action。 提示: Thunk 通常写在 “slice” 文件中。 //slices/productSlice.js import { createSlice } from '@reduxjs/toolkit' ...