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,谢谢! –