Я делаю копию 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;
}
Так что, по сути, если что-то работает хорошо, я получаю эти данные, сортирую и затем отправляю действие в мой редуктор.
Эта часть сортировки, это нормально для утилит / утилит? потому что я использую более одного раза, так что я думаю, что это хороший подход.
А где я делаю такой тест? На действии, как я делаю сейчас, или мне нужно сделать на моем редукторе?