Javascript React-Redux可以不使用React-saga或React-thunk框架吗?
在没有saga或thunk中间件的情况下使用react-redux是最佳实践吗 我有一个react redux应用程序,但它没有任何这些中间件。这是我现在掌握的代码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
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提供了一个链接,用于传递给
提供商的存储对象和包装组件道具之间。它根本不应该关心中间产品。