我不知道我们是否应该一直坚持react-redux样式。
使用React-Redux,无论简单的操作或异步请求如何,我们都会将逻辑归功于动作创建者。但是,它确实有助于我们保持工作流程简单清晰:派遣操作,并减少操作以更改存储中数据的操作。
,但我很好奇:
我可以创建一个不是动作创建者的函数吗?这是否打破了Redux设计?
例如:
Action-CREATOR-1.JS
const getData=()=>(dispatch,getState)=>{
return Promise.resolve().then(()=>{
//do long-running work
});
};
export default{
getData
};
Action-CREATOR-2.JS
import action1 from 'action-creator-1';
const loadData=()=>(dispatch,getState)=>{
return Promise.resolve().then(()=>{
//? return action1.getData();
})
.then(()=>{
//do other work
})
}
我们可以在Action Creator文件中设置一个简单的函数:
const getData=(state)=>{
return Promise.resolve().then(()=>{
//get local data
})
}
这是否有意义?
操作是将数据从您的应用程序发送到商店的有效载荷。它们是商店的唯一信息来源。您使用store.dispatch()
将它们发送到商店。
在action.js
import {serviceCall} from './service-call';
export function showLoader() {
return {
type: 'SHOW_LOADER',
payload: true
};
}
export function loadData() {
Store.dispatch(showLoader());
return {
type: 'SET_WIDGET_DATA',
payload: return Promise.resolve().then(response => {
return response
})
}
}
export function getData() {
Store.dispatch(showLoader());
return {
type: 'GET_PAGE_DATA',
payload: return Promise.resolve().then(response => {
Store.dispatch(loadData());
})
}
}
export function serviceCall() {
Store.dispatch(showLoader());
return {
type: 'GET_HTTP_DATA',
payload: serviceCall({
url: 'http://'
})
}
}
我可以创建一个不是动作创建者的函数吗?这是否破坏Redux设计? ==>是的,这不会打破您的redux设计,因为我们还为http call is service.js。