TypeError:_this.store.getState在使用Redux连接时不是函数

Fre*_*era 1 javascript node.js reactjs redux react-redux

当我第一次运行服务器时,node app.js我得到的一切都很好listening on 5050.然后我去localhost:5050 /并且我在服务器运行的控制台中收到这些警告.

Warning: Failed propType: Required prop `store.subscribe` was not specified in `Provider`.
Warning: Failed Context Types: Required child context `store.subscribe` was not specified in `Provider`. 
Run Code Online (Sandbox Code Playgroud)

组件渲染得很好但是一旦我进入localhost:5050/ballerviews我在服务器上得到这个

TypeError: _this.store.getState is not a function
    at new Connect (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react-redux/lib/components/connect.js:133:38)
    at [object Object].ReactCompositeComponentMixin.mountComponent (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactCompositeComponent.js:148:18)
    at [object Object].wrapper [as mountComponent] (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactPerf.js:66:21)
    at Object.ReactReconciler.mountComponent (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactReconciler.js:37:35)
    at ReactDOMComponent.ReactMultiChild.Mixin.mountChildren (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactMultiChild.js:241:44)
    at ReactDOMComponent.Mixin._createContentMarkup (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactDOMComponent.js:591:32)
    at ReactDOMComponent.Mixin.mountComponent (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactDOMComponent.js:479:29)
    at Object.ReactReconciler.mountComponent (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactReconciler.js:37:35)
    at [object Object].ReactCompositeComponentMixin.mountComponent (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactCompositeComponent.js:225:34)
    at [object Object].wrapper [as mountComponent] (/Users/freddiecabrera/Desktop/ullibol-client/node_modules/react/lib/ReactPerf.js:66:21)
Run Code Online (Sandbox Code Playgroud)

您可以在我的Github上查看完整的项目,因为我觉得通过查看它可以获得最佳的理解.

我一直试图在今天整天解决这个问题,但事实并非如此.在我尝试在服务器上渲染之前,它工作正常.我感谢您的帮助,如果您需要更多信息来回答这个问题,请告诉我.

Mic*_*oix 5

只有两个小问题:

1. ES2015模块 - > CommonJS

您使用的是ES2015 export defaultsrc/store.js,但是你然后通过CommonJS的要求它在app.js线#11.

这当然没问题,但您需要在需要时访问默认属性.更新行如下:

// Old
const store = require('./src/store.js')

// New
const store = require('./src/store.js').default
Run Code Online (Sandbox Code Playgroud)

2.呼叫document服务器

线#41src/components/BallerViews.jsx您正在访问的文件,这将不会存在于服务器上.快速解决方法是将该行包装在条件中:

// Old
document.body.style.backgroundColor = '#0e0e13'

// New
if (typeof document !== 'undefined') {
  document.body.style.backgroundColor = '#0e0e13'
}
Run Code Online (Sandbox Code Playgroud)