Redux 如何在“CreateSynchThunk`on”上发送自定义参数;待决“;地位
创建Redux 如何在“CreateSynchThunk`on”上发送自定义参数;待决“;地位,redux,redux-toolkit,redux-async-actions,Redux,Redux Toolkit,Redux Async Actions,创建fetchUserById()时,将定义其输出响应 const fetchUserById = createAsyncThunk<{user: UserInterface, id: number}, number>( 'users/fetchByIdStatus', async (userId) => { const response = await userAPI.fetchById(userId) return {user: response.d
fetchUserById()
时,将定义其输出响应
const fetchUserById = createAsyncThunk<{user: UserInterface, id: number}, number>(
'users/fetchByIdStatus',
async (userId) => {
const response = await userAPI.fetchById(userId)
return {user: response.data, id: userId}
}
);
const userSlice = createSlice({
name: "users",
initialState: [],
reducers: {},
extraReducers: (builder) => {
builder.addCase(fetchUserById.pending, (state, { payload }) => {
// how I configured custom value for this payload?
// I need to send the user id.
});
builder.addCase(fetchUserById.fulfilled, (state, {payload}) => {
/**
* @var {UserInterface} user
* @var {number} id;
*/
const {id, user} = payload;
state[id].loading = false;
state[id].user = user;
});
},
});
const fetchUserById=createAsynchThunk(
“用户/fetchByIdStatus”,
异步(用户ID)=>{
const response=await userAPI.fetchById(userId)
返回{user:response.data,id:userId}
}
);
const userSlice=createSlice({
名称:“用户”,
初始状态:[],
还原子:{},
外部减速器:(生成器)=>{
addCase(fetchUserById.pending,(状态,{payload})=>{
//如何配置此有效负载的自定义值?
//我需要发送用户id。
});
addCase(fetchUserById.Completed,(状态,{payload})=>{
/**
*@var{UserInterface}user
*@var{number}id;
*/
const{id,user}=有效载荷;
状态[id]。加载=false;
状态[id]。用户=用户;
});
},
});
但是,当操作处于“挂起”状态时,如何定义响应?传递到
createAsyncThunk
的arg将在action.meta.arg
中可用。因此,在您的示例中,您可以这样引用:
builder.addCase(fetchUserById.pending,(state,{meta})=>{
console.log(meta.arg);//meta.arg将具有作为`userId'传递的任何值`
});
传递到createAsyncThunk
的arg将在action.meta.arg
中提供。因此,在您的示例中,您可以这样引用:
builder.addCase(fetchUserById.pending,(state,{meta})=>{
console.log(meta.arg);//meta.arg将具有作为`userId'传递的任何值`
});
无法发送参数的原因可能是因为我没有正确使用userSlice
?无法发送参数的原因可能是因为我没有正确使用userSlice
?谢谢,这很有意义meta.arg
或action.meta.arg
也可以在Completed
和rejected
上找到。除了arg之外,是否可以将其他数据从action creator传递到挂起的reducer?谢谢,这很有意义meta.arg
或action.meta.arg
也可在Completed
和rejected
上找到。除了arg之外,是否可以将其他数据从action creator传递到挂起的reducer?