嘿,伙计们,我正在使用redux/工具包,我如何更新用户,虽然它更新并保存在后端,但我得到了一个错误?

我试着使用在提交时直接放入,它起作用了,但我感觉不舒服,因为它会使代码混乱.

Https://localhost/api/users/:id

这个可以用,但我想使用REDUX和API调用

提交按钮

const onSubmit =  async ({username, email, studentid}) => {
        let user = {username, email ,studentid}
        updateUser(id, user,dispatch) 
      }

Apicalls.js

export const updateUser = async (id,user, dispatch) =>{
  dispatch(updateStart())

  try {
    const res = await publicRequest.put(`/users/${id}`, user) 
    console.log(res.data)
    dispatch(updatenSuccess(res.data))
  } catch (error) {
    dispatch(updatenFailure)
  }
}

AuthSlice.js

export const authSlice = createSlice({
    name: 'auth',
    initialState: {
        currentUser: null,
        isFetching : false,
        isError: false,
        isSuccess: false,
    },
    reducers: {
        updateStart: (state)=>{
            state.isFetching = true;
            state.isError = false;
        },
        updateSuccess: (state, action) =>{
            state.isFetching = true;
            state.isSuccess = true;
            state.currentUser = action.payload
        },
        updateFailure: (state) =>{
            state.isFetching = false;
            state.isError = true;
        }, 
    }

})

export const {rupdateStart, updatenSuccess, updatenFailure} = authSlice.actions;
export default authSlice.reducer

Sample

推荐答案

由于打字错误,您很可能只是在这里调度undefined个.

应该是updateSuccess,而不是updatenSuccess

同样,dispatch(updatenFailure)应该是dispatch(updatenFailure())

尽管如此,您在这里手写的很多东西已经是RTK的一部分--无论是以createAsyncThunk的形式还是以RTK Query的形式.我强烈建议您在编写更多代码之前通读全部official Redux Tutorial个并学习这些概念.

Reactjs相关问答推荐

有没有办法将在服务器端全局获取的一些数据传递到Next&>13应用程序目录中的客户端组件?

获取更改后的状态值

如何使用useState响应快速/顺序状态更新

状态改变不会触发重新渲染

React redux 工具包 useGetFilterProductsQuery 和 useGetFilterProductsByCategoriesQuery 未定义为函数

当 URL 与我声明的任何路由都不匹配时,如何使用不会重定向到错误页面的动态 URL? - react 路由 dom

我无法通过 useContext 显示值

在React中使用if条件时如何更改Tailwind中元素的文本 colored颜色

为什么在 React 的 useEffect 中使用 onAuthStateChanged ?

未捕获的运行时错误:对象作为 React 子项无效

如何在 React 过滤器中包含价格过滤器逻辑?

如何在 Next Js 13 App Router 中添加 Favicon 图标?

React + Redux:数据未正确传递给具有动态路由的组件

Select 项目后 Select HeadlessUI 组合框中的所有文本?

页面不显示

React Native map 中的初始zoom 级别

list 组件未按预期运行

getAttribute 函数并不总是检索属性值

如何将 id 从页面传递到另一个页面?

ReactJS:按钮启用禁用更改 colored颜色