Search code examples
reactjsredux

TypeError: Cannot read property ‘getState’ of undefined


I want to try small redux example so I installed redux but I got this error

TypeError: Cannot read property ‘getState’ of undefined

new Provider webpack-internal:///./node_modules/react-redux/es/components/Provider.js:24:25

Code:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';

import './index.css';

const App = () => (<div>Hi </div>);

ReactDOM.render(<Provider><App /></Provider>, document.getElementById('root'));

What is wrong ?


Solution

  • If we look inside react-redux <Provider />

    <Provider /> expects to be provided a store prop:

    this.state = {
      storeState: store.getState(),
                       ^^here
      store
    }
    

    Hence the error.

    You can create one, though, using a reducer, should be something similar to this:

    import React from 'react'
    import { render } from 'react-dom'
    import { Provider } from 'react-redux'
    import { createStore } from 'redux'
    import reducer from './reducer'
    import App from './components/App'
    
    const store = createStore(reducer)
    
    render(
      <Provider store={store}>
        <App />
      </Provider>,
      document.getElementById('root')
    )