预期 0 个参数的问题,但在 Redux Toolkit 中得到 1 个

Problem with expected 0 arguments, but got 1 in Redux Toolkit

我在简单的 Redux Slice 文件中有一个错误 Expected 0 arguments, but got 1.

我尝试发送时出现此错误。

App.tsx

useEffect(() => {
    dispatch(getMovies({ query: "searchQuery", page: 1 }));
  }, []);

Slice.tsx

const movieSlice = createSlice({
  name: "movie",
  initialState,
  reducers: {
    getMovies(name) {
      return name;
    },
    setMovies: (state, action: PayloadAction<Movie[]>) => {
      state.moviesList = action.payload;
    },
  },
});

export const {
  getMovies,
  setMovies,
} = movieSlice.actions;

问题出在哪里?在哪里声明 getMovies 可以接受对象作为参数?

谢谢

所有reducer 函数都必须将当前状态作为它们的第一个参数,以及可选的触发reducer 的操作。此外,您的 reducer 函数需要返回新状态,而不仅仅是任意数据。

因此,您的 getNames reducer 将进入您尝试获取名称的状态,您错过了操作(第二个参数),并且您没有返回新状态。

要按原样传递对象,reducer 应该类似于:

   getMovies(state, {payload: {query, page}) {
      return {...state, moviesQuery: { query, page }};
   }