【发布时间】:2021-06-20 00:03:58
【问题描述】:
我目前正在尝试使用 redux/toolkit 构建一个简单的 redux 示例。我不确定我做错了什么。
这是我的商店。
import { configureStore } from "@reduxjs/toolkit";
import reducer from "./workouts";
export default function () {
return configureStore({ reducer });
}
这是我的锻炼.ts 文件
import { createAction } from '@reduxjs/toolkit'
export interface IWorkout {
id: number
restTime: number
workoutTime: number
exercises: number[]
numReps: number
}
export interface IState {
workouts: IWorkout[]
}
export interface IAction {
type: string
payload: IWorkout[] | any
}
export const workoutAdded = createAction('workoutAdded')
export const workoutDeleted = createAction('workoutDeleted')
const defaultState: IState = {
workouts: [],
}
let lastId = 0
const reducer = (state: IState = defaultState, action: IAction): IState => {
switch (action.type) {
case workoutAdded.type:
return {
...state,
workouts: [
...state.workouts,
{
id: ++lastId,
restTime: action.payload.restTime,
workoutTime: action.payload.workoutTime,
exercises: action.payload.exercises,
numReps: action.payload.numReps,
},
],
}
case workoutDeleted.type:
return {
...state,
workouts: state.workouts.filter((workout) => workout.id !== action.payload.id),
}
default:
return state
}
}
export default reducer
这是我的 index.ts 文件
import { render } from "react-dom";
import configureStore from "./store/store";
import { workoutAdded } from "./store/workouts";
import App from "./App";
const store = configureStore();
const newWorkout = {
restTime: 10,
workoutTime: 30,
exercises: [1, 2, 3],
NumReps: 6
};
store.dispatch(workoutAdded(newWorkout));
const rootElement = document.getElementById("root");
render(<App />, rootElement);
我的错误出现在 index.ts 文件中的这一行:
store.dispatch(workoutAdded(newWorkout));
不知道我错过了什么。我在这个sandbox中重现了错误
【问题讨论】:
标签: redux redux-toolkit