Nextjs: вызов store.getState в _app после того, как компонент смонтировал

#react-redux #next.js #redux-saga #next-redux-wrapper

#react-redux #next.js #redux-сага #next-redux-wrapper

Вопрос:

Итак, я использую пример nextjs с-redux-saga, чтобы выяснить, как я могу вызвать store.getState в _app.js файл внутри componentDidMount ?

Это конфигурация хранилища:

 import { applyMiddleware, createStore } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { createWrapper } from 'next-redux-wrapper'

import rootReducer from './reducer'
import rootSaga from './saga'

const bindMiddleware = (middleware) => {
  if (process.env.NODE_ENV !== 'production') {
    const { composeWithDevTools } = require('redux-devtools-extension')
    return composeWithDevTools(applyMiddleware(...middleware))
  }
  return applyMiddleware(...middleware)
}

export const makeStore = (context) => {
  console.log(context, 'contextcontext')
  const sagaMiddleware = createSagaMiddleware()
  const store = createStore(rootReducer, bindMiddleware([sagaMiddleware]))

  store.sagaTask = sagaMiddleware.run(rootSaga)

  return store
}

export const wrapper = createWrapper(makeStore)
 

и это _app.js файл:

 import { wrapper } from '../store'
import React from 'react';
import App from 'next/app';

class MyApp extends App {
  static getInitialProps = wrapper.getInitialAppProps(store => async ({Component, ctx}) => {
    return {
      pageProps: {
        ...(Component.getInitialProps ? await Component.getInitialProps({...ctx, store}) : {}),
        pathname: ctx.pathname,
        store,
      },
    };

  });


  componentDidMount() {
    // call store.getState here <======
  }

  render() {
    const {Component, pageProps} = this.props;
    return (
      <Component {...pageProps} />
    );
  }
}

export default wrapper.withRedux(MyApp);
 

Версии:

   "dependencies": {
    "next": "latest",
    "next-redux-wrapper": "^7.0.5",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-redux": "7.2.0",
    "redux": "^4.1.2",
    "redux-saga": "^1.1.3"
  },
 

Дело в том, что когда я регистрирую хранилище в componentDidMount, оно показывает только sagaTask, но не другие методы хранения на стороне клиента:

введите описание изображения здесь

Любая помощь или подсказка будут высоко оценены.