我有一个简单的待办事项列表,其中包含react和redux工具包以及json服务器(用于数据库),我可以获取待办事项并且通过axios在
db.json
中向createAsyncThunk
添加新待办事项并且在exteraReducer
中更新UI没有问题
。但是,当我想通过 db.json
和 createAsyncThunk
中的 exteraReducer
删除 createSlice
中的待办事项时,我得到 404 ERROR
。http://localhost:5000/todos
时就可以了,我可以看到 db.json 的数据。但是当我输入 http://localhost:5000/todos/id
时,我收到未找到错误。
我把这段代码放在github上:https://github.com/nahid-allahparast/todo-list-redux-toolkit
<button
className="btn btn-danger"
onClick={() => dispatch(deleteAsyncTodos({ id }))}
>
delete
</button>
基本网址:
const api = axios.create({
baseURL: "http://localhost:5000",
});
从
db.json
删除:
export const deleteAsyncTodos = createAsyncThunk(
"todos/deleteAsyncTodos",
async (payload, { rejectWithValue }) => {
try {
await api.delete(`/todos/${payload.id}`);
return { id: payload.id };
} catch (error) {
return rejectWithValue(error.message);
}
}
);
通过
exteraReducer
在 UI 中显示结果:
const todoSlice = createSlice({
name: "todos",
initialState: {
todos: [],
loading: false,
error: "",
},
extraReducers: (builder) => {
builder
.addCase(deleteAsyncTodos.fulfilled, (state, action) => {
state.todos = state.todos.filter(
(todo) => todo.id !== Number(action.payload.id)
);
})
});
问题出在 jason-server 上,我安装时已修复
npm install json-server@0
感谢:[https://stackoverflow.com/a/77801181/16772408][1]