Где я могу установить свой код логики с React / Redux - PullRequest
0 голосов
/ 30 мая 2019

Я делаю копию Reddit с React и Redux, и недавно я начал изучать реагирование / редукцию.

Так что у меня есть некоторые практические проблемы во время разработки

Вопрос: Где лучшая часть программы для решения этой логической проблемы (редуктор, действие и т. Д.)?

Проблема:

Мне нужно отсортировать темы, полученные из API, по дате создания или счету голосов. Я начал получать данные из моего API в файле действий.

Действия / 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.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;
}

Так что, по сути, если что-то работает хорошо, я получаю эти данные, сортирую и затем отправляю действие в мой редуктор.

Эта часть сортировки, это нормально для утилит / утилит? потому что я использую более одного раза, так что я думаю, что это хороший подход.

А где я делаю такой тест? На действии, как я делаю сейчас, или мне нужно сделать на моем редукторе?

1 Ответ

0 голосов
/ 30 мая 2019

Хорошей практикой является использование утилит для сортировки функций, хотя я бы не стал писать это внутри действия.Я думаю, что наиболее разумно использовать эту сортировку внутри компонента непосредственно перед отправкой действия.

...