4 回答
TA贡献1942条经验 获得超3个赞
现代web页面里到处都是ajax,所以处理好异步的代码非常重要。 这次我重新选了个最适合展示异步处理的应用场景——搜索新闻列表。由于有现成的接口,我们就不用自己搭服务了。 我在网上随便搜到了一个新闻服务接口,支持jsonp,就用它吧。
TA贡献1780条经验 获得超1个赞
在todo例子中,按照官方文档把state拆分成todos和visibility,现在我在另一个reducer中需要用到todos,比如设置所有的todos的completed为true(false),这个具体要怎么做?
以下是代码
function todos(state = initialState, action) {
switch (action.type) {
case ADD_TODO:
return [
...state,
{
text: action.text,
competed: false
}
];
default:
return state;
}}
function allCompleted(state, action) {
switch (action.type) {
case YES:
return xxxx;//这里要怎么实现,才能引用到或者共享上面的todos,因为要遍历所有todo的completed属性,
default:
return state;
}
}
解决方案1:
新加两个action,然后把allComleted函数放在todos函数里面,操作同一个state下的todos树
TA贡献1835条经验 获得超7个赞
reducer是根据action来处理state的。redux就像一个全局变量,你把所有需要共享的数据,根据一定的命名规则跟维护规则,放进去维护。
不知道你是怎么整理redux,我觉得redux+saga写出来的代码,简直无可挑剔的完美,代码逻辑一目了然。
在我的项目中,我是把流程完完全全交给saga来处理,在saga里拦截action,然后,saga分发put action去触发reducer,让reducer去处理state。
添加回答
举报