未捕获的TypeError:store.getState不是函数

时间:2015-10-01 04:41:43

标签: reactjs redux

在我的redux js app(google appengine后端)中,当打开包含Root组件的页面时,我收到以下警告和错误消息。

警告:propType失败:提供给store的{​​{1}}类型的道具function无效,预计为Provider。检查object的呈现方法。 bundle.js:6169

警告:propType失败:提供给Root的{​​{1}}类型的道具store无效,预计为function。检查DevToolsWrapper的呈现方法。 bundle.js:6169

警告:上下文类型失败:提供给object的{​​{1}}类型的子上下文Root无效,预期为store。检查function的呈现方法。 bundle.js:6169

警告:上下文类型失败:提供给Provider的{​​{1}}类型的上下文object无效,预期为Root。检查store的呈现方法。

function

这是react-redux的lib / components / createConnect.js中发生错误的地方。

Connect(AsyncApp)

在断点处,在此错误发生之前,console.log(store)将返回此错误。

object

但是,当我使用Node后端运行完全相同的代码时,console.log(store)会返回此对象。

Provider

我的root组件和configureStore.js如下所示:

Uncaught TypeError: store.getState is not a function

configureStore.js

    function computeStateProps(store, props) {
      var state = store.getState();  <<<<< The error occurs here.
      var stateProps = shouldUpdateStateProps ? finalMapStateToProps(state, props) : finalMapStateToProps(state);

      _invariant2['default'](_utilsIsPlainObject2['default'](stateProps), '`mapStateToProps` must return an object. Instead received %s.', stateProps);
      return stateProps;
    }

1 个答案:

答案 0 :(得分:9)

我的猜测是你正在运行一个旧的示例代码。有breaking change in Redux 2.0 compose() function API

而不是

const finalCreateStore = compose(
    applyMiddleware(thunkMiddleware),
    devTools(),
    persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/)),
    createStore
);
你可能想要

const finalCreateStore = compose(
    applyMiddleware(thunkMiddleware),
    devTools(),
    persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/))
)(createStore);