在Redux中处理重复动作创建器样板的方法是通过使用Redux中间件来处理。Redux中间件是一个函数,它可以在action被发起之后,到达reducer之前拦截和处理action。通过使用Redux中间件,我们可以在处理重复动作创建器样板时添加一些额外的逻辑。
下面是一个处理重复动作创建器样板的示例:
npm install redux-thunk
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';
const store = createStore(rootReducer, applyMiddleware(thunk));
export const fetchData = () => {
return (dispatch, getState) => {
const { data } = getState();
// 如果数据已经存在,不再重复请求
if (data.length > 0) {
return;
}
// 发起异步请求
dispatch({ type: 'FETCH_DATA_REQUEST' });
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
dispatch({ type: 'FETCH_DATA_SUCCESS', payload: data });
})
.catch(error => {
dispatch({ type: 'FETCH_DATA_FAILURE', payload: error });
});
};
};
在上述示例中,我们使用了redux-thunk中间件来处理重复动作创建器样板。在action创建器中,我们首先获取当前的state,然后根据state中的数据是否已经存在来决定是否发起异步请求。如果数据已经存在,我们可以直接返回,避免重复请求。如果数据不存在,我们发起异步请求,并在请求成功或失败时分别dispatch相应的action。
这样,我们就可以在Redux中处理重复动作创建器样板了。通过使用redux-thunk中间件,我们可以在action创建器中添加额外的逻辑来处理重复动作创建器样板,从而实现更灵活和可复用的代码。
领取专属 10元无门槛券
手把手带您无忧上云