Redux形式:形式在props中未定义

时间:2018-10-02 15:58:55

标签: javascript reactjs redux redux-form reducers

我正在尝试使用redux表单,但收到警告,提示:

Unexpected property "form" found in previous state received by the reducer. Expected to find one of the known reducer property names instead: "route", "questionSet". Unexpected properties will be ignored.

当我用console.log道具查看表单时,表单是未定义的。 我相信问题出在配置上。

我的index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import 'babel-polyfill';
import './index.css';
import App from './containers/App/App';
import registerServiceWorker from './registerServiceWorker';
import { Provider } from 'react-redux';
import configureStore from './configureStore'
import createHistory from 'history/createBrowserHistory';

// import { configureStore } from "redux-inject-reducer-and-saga";
const initialState = {};
const history = createHistory();
const store = configureStore(initialState, createHistory);
ReactDOM.render(  <Provider store={store}>
                  <App />
              </Provider>,
              document.getElementById('root')
);

registerServiceWorker();

这是我的storeConfig.js

import { createStore, applyMiddleware, compose } from 'redux';
import { fromJS } from 'immutable';
import { routerMiddleware } from 'react-router-redux';
import createSagaMiddleware from 'redux-saga';
import createReducer from './rootReducer';

const sagaMiddleware = createSagaMiddleware();

export default function configureStore(initialState, history) {
  const middlewares = [sagaMiddleware, routerMiddleware(history)];

  const enhancers = [applyMiddleware(...middlewares)];
  const composeEnhancers =
   process.env.NODE_ENV !== 'production' &&
    typeof window === 'object' &&
    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
      ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
          shouldHotReload: false,
        })
      : compose;

  const store = createStore(
    createReducer(),
    fromJS(initialState),
    composeEnhancers(...enhancers),
  );

  store.runSaga = sagaMiddleware.run;
  store.injectedReducers = {};
  store.injectedSagas = {}; 

  if (module.hot) {
    module.hot.accept('./rootReducer', () => {
      store.replaceReducer(createReducer(store.injectedReducers));
    });
  }

  return store;
}

这是我的RootReducer:

import { fromJS } from 'immutable';
import { combineReducers } from 'redux-immutable';
// import { routeReducer } from 'react-router-redux';
import {reducer as formReducer} from 'redux-form/immutable';


export default function createReducer(injectedReducers) {
  console.log(formReducer, 'form')
  return combineReducers({
    // route: routeReducer,

    ...injectedReducers,
    form: formReducer
  });
}

需要发布更多文本(将替换):我还可以在一分钟内添加rootReducer。我还可以在一分钟内添加rootReducer。我还可以在一分钟内添加rootReducer。我也可以在以下位置添加rootReducer一分钟。我也可以在一分钟内添加rootReducer。我也可以在一分钟内添加rootReducer。我也可以在一分钟内添加rootReducer。我也可以在一分钟内添加rootReducer。一分钟。我也可以在一分钟内添加rootReducer。我也可以在一分钟内添加rootReducer。

0 个答案:

没有答案