javascript - react-redux的一个问题

查看:80
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆