React Redux:重物怎么办? Reducer或ActionCreator?

时间:2016-11-30 10:31:30

标签: reactjs redux react-redux

以前曾被问过,但我的情况有所不同:

我正在将图像从服务器中拉出来,我在动作创建者中做过:

export function getResults(settings,page){
    return function(dispatch){
        dispatch(startGettingResults());

        return Axios.get('http://localhost:8080/getimages/',{params:{settings: settings,page:page}}).then(function(response){
            return dispatch(resultsSuccess(response.data.results, page));
        }).catch(function(){
            return dispatch(resultsFailure());
        });
    }
}

这很简单&直截了当:我在动作创建者中进行API调用,并通过我的reducer将所有内容存储在状态中。

但是,当用户点击我网站上的某个元素时,我希望商店中的所有当前图片都能改变颜色。我将在客户端应用程序而不是服务器上进行颜色更改。

现在我的问题是,我最好在哪里做这个繁重的工作?

  • 在reducer中,可以轻松访问当前状态的图像吗?
  • 在动作中?这里的问题是我必须从商店传递所有图像,这意味着我必须将它们作为道具加载到我的组件上。

我对处理此问题的最佳方法感到有些失落。你把重物和数据处理功能放在哪里了?

1 个答案:

答案 0 :(得分:1)

为什么不创建新动作,例如'COLOUR_ALL_IMAGES'并发送?减速器将理解状态并“了解”所有te图像,不需要将它们作为动作的一部分传递?