Ошибка типа: _store_js__WEBPACK_IMPORTED_MODULE_12 __. Default.subscribe не является функцией - PullRequest
0 голосов
/ 07 января 2019

У меня есть основной компонент приложения и я обычно подписываюсь на магазин:

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {}
    this.unsubscribe = store.subscribe(() => {
      console.log(store.getState());
      this.setState(store.getState());
    })
  }

  render() {
    return (
      <Provider store={store}>
        <div id="App">
          <MainNavbar />
          <ContentHandler />
          <Footer />
        </div>
      </Provider>
    );
  }
}

Вкл. store.js все работает нормально, если я создаю хранилище только с корневым редуктором:

const store = createStore(reduceAppState);

Тем не менее, если я создам это прохождение саги в качестве промежуточного программного обеспечения:

    import { createStore } from 'redux'
    import createSagaMiddleware from 'redux-saga'
    import { composeWithDevTools } from 'remote-redux-devtools';
    import reduceAppState from './reducers'

    const sagaMiddleware = createSagaMiddleware()
    const composeEnhancers = composeWithDevTools({trace: true, traceLimit: 25})

    const store = createStore(reduceAppState, undefined, composeEnhancers(
    sagaMiddleware
));

    export default store;

Я получаю эту ошибку:

enter image description here

Что в значительной степени похоже на ошибку. Не могу найти что-нибудь в Google. Вы знаете, почему это происходит?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Нашел проблему: мне пришлось applyMiddleware на sagaMiddleware:

import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { composeWithDevTools } from 'remote-redux-devtools';
import reduceAppState from './reducers'

const sagaMiddleware = typeof createSagaMiddleware === 'function' ? createSagaMiddleware() : createSagaMiddleware.default()
const composeEnhancers = composeWithDevTools({trace: true, traceLimit: 25})

const store = createStore(reduceAppState, composeEnhancers(
    applyMiddleware(sagaMiddleware)
));

export default store;
0 голосов
/ 07 января 2019

Попробуйте изменить subscribe(() => до subscribe()(

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...