我在哪里可以使用React / Redux设置代码逻辑

时间:2019-05-30 05:32:09

标签: reactjs react-native redux react-redux redux-thunk

我正在使用React和Redux进行reddit复制,最近我开始学习react / redux。

所以我在开发时遇到一些实际问题

问题:解决逻辑问题(减少器,动作等)的最佳程序部分在哪里?

问题:

我需要按照创建日期或投票分数对从API获得的主题进行排序。我开始从动作文件上的api获取数据。

actions / actions.js

        export function getForumTopics(currentCategory, orderBy)
    {
        return (dispatch) => {
            if(currentCategory === all_categories)
            {
                fetch(LOCAL_API_URL + '/posts', { 
                    headers,
                }).then(resp => resp.json())
                  .then(data => dispatch(getTopics(orderTopicBy(data, orderBy))))
            }
    }
}

然后,我从utils创建并导入了该函数。

utils / utils.js

    export function orderTopicBy(topics, orderBy) {
    switch(orderBy)
    {
        case 'vote-score':
        {
            topics = topics.sort(function(a,b) {
            if(a.voteScore > b.voteScore)
                    return 1;
                else if(a.voteScore < b.voteScore)
                    return -1;
                return 0;
            });
        }
        //topic-created
        default:
            topics = topics.sort(function(a,b) {
            if(a.timestamp > b.timestamp)
                    return -1;
                else if(a.timestamp < b.timestamp)
                    return 1;
                return 0;
            });
    }
    return topics;
}

因此,基本上,如果一切正常,我将得到这些数据,进行排序,然后将操作发送给我的减速器。

这样的部分,可以使用utils / utils吗?因为我使用了不止一次,所以我认为这是一种好方法。

我在哪里进行分类测试?正在执行操作,还是需要对我的减速器进行操作?

1 个答案:

答案 0 :(得分:0)

使用utils进行函数排序是一个好习惯,尽管我不会在动作中编写它。我认为最合理的排序方式是在分派操作之前在组件内部进行。