TypeError:store.getState不是函数。(在“ store.getState()”中,“ store.getState”未定义,我该如何解决此问题?

杰克·沃尔滕

我想连接redux-saga witdh react-native但此错误不断发生...

TypeError:store.getState不是函数。(在“ store.getState()”中,“ store.getState”未定义

在此处输入图片说明

警告:无法道具类型:无效的支柱store型的function供给Provider,预计object

这是我的代码

  (index.js)


            import {AppRegistry} from 'react-native';
            import Root from './App';
            import {name as appName} from './app.json';

            AppRegistry.registerComponent(appName, () => Root);

(App.js)

    import React from 'react';
    import Store from './store/configureStore'
    import {Provider} from 'react-redux';
    import {App} from './src/index';

    const Root = () => {
      return (
        <Provider store={Store}>
          <App />
        </Provider>
      );
    };

    export default Root;

(src / index.js)

    import React from 'react';
    import Navigator from './Screens/Navigator';
    import styled from 'styled-components/native';

    const App = ({}) => {
      return (
        <Navigator/>
      );
    };

    export {App};

(store / cofigurestore.js)

     import { applyMiddleware, createStore, compose } from 'redux';
    import createSagaMiddleware from 'redux-saga';
    import { composeWithDevTools } from 'redux-devtools-extension';

    import reducer from '../reducers';
    import rootSaga from '../sagas';

    const Store = () => {
      const sagaMiddleware = createSagaMiddleware();
      const middlewares = [sagaMiddleware];
      const enhancer = process.env.NODE_ENV === 'production'
        ? compose(applyMiddleware(...middlewares))
        : composeWithDevTools(
          applyMiddleware(...middlewares),
        );
      const store = createStore(reducer, enhancer);
      store.sagaTask = sagaMiddleware.run(rootSaga);
      return store;
    };

    export default Store;

(reducer / index.js)

      import { combineReducers } from 'redux';

      import user from './user';
      import post from './post';

      // (이전상태, 액션) => 다음상태
      const rootReducer = (state, action) => {
        switch (action.type) {
          // case HYDRATE:
          //   // console.log('HYDRATE', action);
          //   return action.payload;
          default: {
            const combinedReducer = combineReducers({
              user,
              post,
            });
            return combinedReducer(state, action);
          }
        }
      };

      export default rootReducer;

(sage / index.js)

    import { all, fork } from 'redux-saga/effects';
    import axios from 'axios';

    import postSaga from './post';
    import userSaga from './user';



    export default function* rootSaga() {
      yield all([
        fork(postSaga),
        fork(userSaga),
      ]);
    }

请帮助我.........我想解决这个问题......但是我不知道该怎么办

路易斯

在您中,App.js您应该将调用Store函数的结果传递给,Provider而不是函数本身。

const Root = () => {
  return (
    <Provider store={Store()}>
      <App />
    </Provider>
  );
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章