【问题标题】:Unexpected key found in preLoadedState expected to find one of the known reducers keys instead在 preLoadedState 中找到的意外键预期会找到已知的 reducers 键之一
【发布时间】:2018-01-04 18:10:31
【问题描述】:

我正在尝试将 defaultState 设置为一些虚拟 json 以创建一些选择列表:

const initialState = {
    eventsHasErrored: false,
    eventsIsLoading: true,
    events: [],
    calendarView: 0,
    studentYears: [
        {
            id: 1,
            title: "Year 1",
            options: ["Firm 1", "Firm 2", "Firm 3"]
        },
        {
            id: 2,
            title: "Year 2",
            options: ["Firm 2", "Firm 3", "Firm 4"]
        },
        {
            Id: 4,
            title: "Year 3",
            options: ["Firm 5", "Firm 6", "Firm 7"]
        }
    ]
};

const reduxLogger = createLogger();

const store = createStore(
    rootReducer,
    initialState,
    applyMiddleware(thunk, reduxLogger)
);

我得到一个错误:

在 preLoadedState 中发现的意外键 studentYears 期望找到已知的 reducers 键之一。

如何向我的组件添加一些虚拟 json?

// combineReducer
import { combineReducers } from "redux";
import {
    events,
    eventsHasErrored,
    eventsIsLoading,
    calendarView
} from "./events";
import navigationReducer from "./navigationReducer";

const rootReducer = combineReducers({
    events,
    eventsHasErrored,
    eventsIsLoading,
    calendarView,
    navigationReducer
});

export default rootReducer;

【问题讨论】:

  • 你是在用 combineReducer 组成 rootReducer。长什么样子
  • 更新了我的问题,谢谢
  • 我想这个问题已经在这里得到了解答——stackoverflow.com/questions/40053159/…查看一下

标签: reactjs redux


【解决方案1】:

根据redux docs

如果你用 combineReducers 生产 reducer,这必须是一个普通的 与传递给它的键具有相同形状的对象。

所以你的 InitialState 应该是这样的

    const initialState = {
        eventsHasErrored: false,
        eventsIsLoading: true,
        events: [],
        calendarView: 0,
        navigationReducer: {
          studentYears: [
              {
                  id: 1,
                  title: "Year 1",
                  options: ["Firm 1", "Firm 2", "Firm 3"]
              },
              {
                  id: 2,
                  title: "Year 2",
                  options: ["Firm 2", "Firm 3", "Firm 4"]
              },
              {
                  Id: 4,
                  title: "Year 3",
                  options: ["Firm 5", "Firm 6", "Firm 7"]
              }
          ]
        }
    };

假设navigationReducer 包含studentYears 对象

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2020-03-04
    • 1970-01-01
    • 2019-09-05
    • 2012-07-11
    • 2011-05-17
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多