Q
如何Redux的
0
A
回答
1
您可以更新的答案列出這樣,在你的減速機:
function update(state, action) {
// assuming you are passing an id of the item to be updated via action.itemId
let obj = state.whatever_list.filter(item => item.id === action.itemId)[0]
//assuming you are passing an id of the answer to be updated via action.answerId
//also, assuming action.payload contains {answered: true}
let answers = obj.answers.map(answer => answer.id === action.answerId ?
Object.assign({}, answer, action.payload) : answer)
obj = Object.assign({}, obj, {answers: answers})
return {
whatever_list: state.whatever_list.map(item => item.id == action.itemId? Object.assign({}, item, obj) : item)
}
}
這裏是你的行動可能是什麼樣子:
function updateAnswer(itemId, answerId, payload) {
return {
type: UPDATE_ANSWER,
itemId: itemId,
answerId: answerId,
payload: payload
}
}
在您的反應組件類中,假設有一個事件處理程序用於監視是否回答問題:
export default class Whatever extends React.Component {
...
// assuming your props contains itemId and answerId
handleAnswered = (e) => {
this.props.dispatch(updateAnswer(this.props.itemId, this.props.answerId, {answered: true}))
}
...
}
所以基本上會發生什麼情況是這樣的:
- 你的事件處理程序調用動作和更新的數據傳遞給它
- 當你的動作被調用,其與類型一起返回更新數據參數
- 當您的減速器看到類型參數時,將觸發相應的處理程序(上述第一段代碼)
- 減速器將從列表中提取現有數據,用新數據替換舊數據,然後返回一個包含新數據
0
您可以爲答案鍵創建一個子縮減器。請看下面的例子:
https://github.com/rackt/redux/blob/master/examples/async/reducers/index.js
+0
這已經是一個子減速。我不想再分裂一次。 –
0
您可以使用dot-prop-immutable和更新將是簡單的列表:
return dotProp.set(state, 'quiz.0.answers.0.answered', true);
相關問題
- 1. 如何Redux的
- 2. 如何實現Redux?
- 3. 如何從Redux的減速
- 4. 如何將Redux DevTools Extension添加到我的react-redux存儲中?
- 5. 如何測試使用'redux-api-middleware'和[CALL_API]的redux動作?
- 6. 如何將`bindActionCreators`與redux-thunk
- 7. 如何更換Redux狀態?
- 8. 如何實現redux搜索
- 9. 如何編寫Redux Reducer?
- 10. 如何設計redux-tooltip?
- 11. 如何轉換redux與immutable.js
- 12. Redux Framework - 如何使用redux/validate/{opt_name}/class/{field.validate}過濾器
- 13. 使用redux-form,如何基於ASYNC redux狀態設置initialValues?
- 14. React-redux:如何將redux表單道具冒泡到父組件
- 15. 如何Redux連接存儲到異步Redux操作
- 16. 如何登錄到Redux中的文件?
- 17. Redux如何更改React中的UI?
- 18. 如何使用Kotlin.js中的Redux/React?
- 19. 如何更新django-registration-redux中的admin.py?
- 20. 如何降低Redux的樣板
- 21. redux在redux驗證
- 22. React-Redux中的redux狀態發生變化時,如何將redux狀態分配爲反應狀態?
- 23. 何時使用Redux?
- 24. 使用redux-thunk/redux-observable with redux的回調函數
- 25. 如何在連接的Redux組件中使用Jest單元測試Redux動作
- 26. 如何在Reduux中處理Redux的redux-promise中間件AJAX錯誤?
- 27. Angular2與使用ng2-redux的redux
- 28. Redux action.type給出@@ redux/INIT
- 29. React Redux連接()與Redux thunk
- 30. 構造redux,redux-saga和normalizr
Perfekt,謝謝! –