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。
添加回答
舉報