redux - 路径 'emailReducer.emails.0' 中的错误 : Invariant failed: A state mutation was detected between dispatches,

标签 redux redux-toolkit

我收到关于改变状态的错误消息,但 Redux Toolkit 的目的是改变状态,所以我很困惑......

错误来自 addNewEmail,我将新电子邮件添加到使用 useSelector 调用 prevEmails 的数组中,第二个参数是一个普通的字符串。

import { createSlice } from "@reduxjs/toolkit";
import { AppThunk } from "./store";

const initialState = {
   emails: [],
};

export const emailSlice = createSlice({
   name: "email",
   initialState,
   reducers: {
      setEmails: (state, action: any) => {
         state.emails = action.payload;
      },
   },
});

export const { setEmails } = emailSlice.actions;

export const addNewEmail = (prevEmails: any, email: string): AppThunk => (
   dispatch
) => {
   const allEmails = prevEmails.push(email);
   dispatch(setEmails(allEmails));
};

export default emailSlice.reducer;

export const selectEmails = (state: any) => state.emailReducer.emails;

最佳答案

我也遇到了同样的错误,这不是你发送 行动。所有你必须在你的商店中传递这个中间件。

const store = configureStore({
          reducer,
          middleware: (getDefaultMiddleware) => getDefaultMiddleware({
               immutableCheck: false,
               serializableCheck: false,
          })
})

关于redux - 路径 'emailReducer.emails.0' 中的错误 : Invariant failed: A state mutation was detected between dispatches,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64695464/

相关文章:

javascript - React Redux - 未捕获( promise )TypeError : Cannot read property 'props' of undefined

javascript - Redux-saga 任务取消

reactjs - 如何在 Redux 工具包查询中禁用缓存?

javascript - Redux-Toolkit extraReducers 列在 reducers 之后导致问题(TS2322 错误)

javascript - 重新选择选择器结构

javascript - FirebaseError : Function addDoc() called with invalid data. 不支持的字段值:未定义

javascript - Redux 应用程序中的 React Router 4 导航模式

javascript - 更新切片中的状态,将对象作为有效负载

reactjs - 无法读取未定义的属性(读取 'editQuoteModalShown' )react-redux

reactjs - 如何实现rtk的createApi查询去抖动