我正在使用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吗?因为我使用了不止一次,所以我认为这是一种好方法。
我在哪里进行分类测试?正在执行操作,还是需要对我的减速器进行操作?
答案 0 :(得分:0)
使用utils进行函数排序是一个好习惯,尽管我不会在动作中编写它。我认为最合理的排序方式是在分派操作之前在组件内部进行。