在没有传奇或笨拙的中间件的情况下使用react-redux是最佳实践吗?

我有一个react-redux应用程序,但其中没有任何中间件。这是我现在拥有的代码。

import React from 'react';
import ReactDOM from 'react-dom';

import allReducers from './app/reducers/index';
import Header from './app/components/header';
import './index.css';

import { createStore, applyMiddleware } from 'redux';
import logger from 'redux-logger';
import { Provider } from 'react-redux';
import registerServiceWorker from './registerServiceWorker';

const store = createStore(allReducers, {}, applyMiddleware(logger));

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

最佳答案

尽管似乎几乎每个人都使用这两个库中的一个来手动执行redux中的异步操作,但是完全可以通过编写自己的redux中间件来进行管理。有几件事要牢记,但除此之外,它非常简单。

看起来像一个例子

/**
 * Auth middleware
 */
export const authMiddleware: Middleware = <State>({ getState, dispatch }) => next => action => {

  if (isType(action, actions.authExpired)) {

    refreshToken()
      .then(token => {
        setSession(token, true);
      })
      .catch(e => console.log('Silent auth error', e));

  }

  return next(action);

}


编写中间件的文档
https://redux.js.org/docs/advanced/Middleware.html

08-06 04:14