Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React-Redux可以不使用React-saga或React-thunk框架吗?_Javascript_Reactjs_React Redux_Redux Thunk_Redux Saga - Fatal编程技术网

Javascript React-Redux可以不使用React-saga或React-thunk框架吗?

Javascript React-Redux可以不使用React-saga或React-thunk框架吗?,javascript,reactjs,react-redux,redux-thunk,redux-saga,Javascript,Reactjs,React Redux,Redux Thunk,Redux Saga,在没有saga或thunk中间件的情况下使用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 './i

在没有saga或thunk中间件的情况下使用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();
从“React”导入React;
从“react dom”导入react dom;
从“./app/reducers/index”导入所有还原程序;
从“./app/components/Header”导入标题;
导入“./index.css”;
从“redux”导入{createStore,applyMiddleware};
从“redux记录器”导入记录器;
从'react redux'导入{Provider};
从“./registerServiceWorker”导入registerServiceWorker;
conststore=createStore(allreducer,{},applyMiddleware(logger));
ReactDOM.render(
,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);

}
/**
*认证中间件
*/
导出常量authMiddleware:Middleware=({getState,dispatch})=>next=>action=>{
if(isType(action,actions.authExpired)){
刷新令牌()
。然后(令牌=>{
设置会话(令牌,真);
})
.catch(e=>console.log('Silent auth error',e));
}
返回下一步(操作);
}
关于编写中间件的文档

“在没有saga或thunk中间件的情况下使用react-redux是否是一种最佳实践?”您从何处获得此建议?而且,为了清楚起见,react-redux提供了一个链接,用于传递给
提供商的
存储
对象和包装组件道具之间。它根本不应该关心中间产品。