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?