javascript - react-redux的一个问题
本文介绍了javascript - react-redux的一个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
const mapStateToProps = (state) => ({
todos: getVisibleTodos(state.todos, state.visibilityFilter)
})
官方案例TODOS中 state.todos state.visibilityFilter是怎么来的?
const visibilityFilter = (state = 'SHOW_ALL', action) => {
switch (action.type) {
case 'SET_VISIBILITY_FILTER':
return action.filter
default:
return state
}
}
export default visibilityFilter
是reducer里的这个方法吗
const todoApp = combineReducers({
todos,
visibilityFilter
})
然后state.visibilityFilter可以直接取到state值show_all?
解决方案
combineReducers
将所有的 reducer
放到一个对象里面。当 state 发送变化时,遍历 reducer 对象,
再根据 reducer 的 key 取出 state 里面的一部分处理。
// 假设有这么一个 reducer 对象
reducers = {
reducer1: function(state, action) {
// ...
},
reducer2: function(state, action) {
// ...
},
}
// 那 state 里面也有同名的 value
state = {
reducer1 : 'value1',
reducer2 : 'value2'
}
可以看看这个源码解析的 combineReducers 部分
这篇关于javascript - react-redux的一个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文