打字稿错误:类型为“{任务:字符串;”的参数}' 不可分配给类型为“void”的参数

问题描述 投票:0回答:1

尝试通过调度方法传递参数时出现此错误。 我是 React Native 和 Redux 的新手。

错误:类型参数 '{ task: string; }' 不可分配给类型为“void”的参数

index.tsx 文件:

import store from "../store/configureStore";
import { addTask, completeTask, removeTask } from "../store/tasks";

export default function Gallery() {
  /* store.subscribe(() => {
    console.log("Updated", store.getState());
  }); */
  //console.log(addTask({ task: "Task 1" }));
  store.dispatch(addTask({ task: "Task 1" }));  // getting error on these dispatch method lines
  store.dispatch(addTask({ task: "Task 2" })); //
  console.log(store.getState());
  store.dispatch(completeTask({ id: 1 }));    //
  store.dispatch(removeTask({ id: 1 }));      //
  //store.dispatch(fetchTodo());
  console.log(store.getState());

tasks.js 文件:

//Actions
export const addTask = createAction("ADD_TASK");
export const removeTask = createAction("REMOVE_TASK");
export const completeTask = createAction("TASK_COMPLETED");

使用 Redux Thunk 可以工作,但不能与 redux 工具包一起使用。 提前致谢! :)

typescript react-native redux react-redux redux-toolkit
1个回答
0
投票

您正在使用 Typescript,因此您必须输入要传递的操作负载。

示例:

export const addTask = createAction<{ task: string }>("ADD_TASK");
export const removeTask = createAction<{ id: number }>("REMOVE_TASK");
export const completeTask = createAction<{ id: number }>("TASK_COMPLETED");
© www.soinside.com 2019 - 2024. All rights reserved.