它会破坏React-Redux设计以创建在其他动作创建者中调用的方法



我不知道我们是否应该一直坚持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。

创建另一个.js文件

最新更新