【问题标题】:TypeError: store.getState is not a function React-reduxTypeError:store.getState 不是函数 React-redux
【发布时间】:2019-12-15 19:42:00
【问题描述】:

我正在尝试制作一个登录表单,它需要我在 react + redux 应用程序中迁移我的 soloreac 应用程序。我面临许多错误并坚持使用TypeError: store.getState is not a function。我是这方面的新手,任何形式的帮助都会受到欢迎。

Index.js 文件

import ReactDOM from 'react-dom';
import App from './App';
import * as serviceWorker from './serviceWorker';
import Provider from "react-redux/es/components/Provider";
import {applyMiddleware, createStore} from "redux";
import * as promise from 'redux-promise';

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

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.

const createstorewithmiddleware = applyMiddleware(promise)(createStore)

ReactDOM.render(
  <Provider store={createstorewithmiddleware}>
    <App />
  </Provider>, document.getElementById('root'),
);

serviceWorker.unregister();

App.js 文件:

import { HashRouter, Route, Switch, Router, Link } from 'react-router-dom';
import './App.scss';
import {connect} from "react-redux";

import Home from "./screens/home";
import SignInScreen from "./screens/signInScreen";
import SignUpScreen from "./screens/signUpScreen";
import {checkUser} from "./actions/auth";


const loading = () => <div className="animated fadeIn pt-3 text-center">Loading...</div>;

// Containers
const DefaultLayout = React.lazy(() => import('./containers/DefaultLayout'));

// Pages
const Login = React.lazy(() => import('./views/Pages/Login'));

const Register = React.lazy(() => import('./views/Pages/Register'));
const Page404 = React.lazy(() => import('./views/Pages/Page404'));
const Page500 = React.lazy(() => import('./views/Pages/Page500'));

class App extends Component {
  componentDidMount() {
    this.props.checkUser();
  }

  render() {
    return (
      <HashRouter>
        <React.Suspense fallback={loading()}>
          <Switch>
            {/*<Route exact path="/login" name="Login Page" render={props => <Login {...props}/>} />*/}
            <Route exact path="/sign-in/" component={SignInScreen}/>
            <Route exact path="/sign-up/" component={SignUpScreen}/>

            {/*<Route exact path="/register" name="Register Page" render={props => <Register {...props}/>} />*/}
            <Route exact path="/404" name="Page 404" render={props => <Page404 {...props}/>} />
            <Route exact path="/500" name="Page 500" render={props => <Page500 {...props}/>} />
            <Route path="/" name="Home" render={props => <DefaultLayout {...props}/>} />
          </Switch>
        </React.Suspense>
      </HashRouter>
    );
  }
}

const mapStateToProps = (state) => ({
});

const mapDispatchToProps = (dispatch) => ({
  checkUser: () => dispatch(checkUser())
});

export default connect(mapStateToProps, mapDispatchToProps)(App);

我收到此错误。我不明白是什么文件或代码导致了这个错误。

TypeError: store.getState 不是函数 新提供者 node_modules/react-redux/es/components/Provider.js:25 22 |商店:商店, 23 |订阅:订阅 24 | }; 25 | _this.previousState = store.getState(); | ^ 26 |返回_this; 27 | } 28 | 查看编译 构造类实例 node_modules/react-dom/cjs/react-dom.development.js:11787 11784 |新的ctor(道具,上下文); // eslint-disable-line no-new 11785 | } 11786 | } 11787 | var instance = new ctor(props, context); | ^ 11788 | var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ?实例状态:空; 11789 |采用ClassInstance(workInProgress, instance); 11790 | {

【问题讨论】:

  • import Provider from "react-redux/es/components/Provider" 似乎关闭了。你能做吗import Provider from "react-redux"
  • @ChristopherNgo Attempted import error: 'react-redux' does not contain a default export (imported as 'Provider'). 收到此错误
  • 哦,我的错就是import { Provider } from "react-redux"
  • 已经这样做了,还是一样的错误。

标签: javascript reactjs webpack redux django-rest-framework


【解决方案1】:

尝试以不同的方式启动您的商店:

const createstorewithmiddleware = createStore(yourReducer, applyMiddleware(promise))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 2015-12-29
    • 2017-12-30
    • 2020-08-18
    • 2017-03-14
    • 2016-08-19
    • 2023-04-07
    • 2020-04-16
    相关资源
    最近更新 更多