Redux用于改变状态的函数的单词

时间:2016-04-05 23:19:36

标签: javascript reactjs redux

在redux中,你会在switch语句中为一个以状态作为参数的特定动作调用一个函数,改变它并返回一个新的状态?

function reducer(state = DEFAULT_STATE, action) {
  let count = state.count
  switch (action.type) {
    case CHANGE_COLOR:
      return { color: action.color }
    case UPDATE_LANGUAGE:
      return updateLanguage(state, action)
    default:
      return state
  }
}

在上面的函数中,updateLanguage会是什么样的函数?

2 个答案:

答案 0 :(得分:3)

由于您正在传递stateaction,因此您实际上只是创建了另一个reducer,假设您返回了新的state

type Reducer<S, A> = (state: S, action: A) => S

如果您愿意,将工作拆分为较小的Reducer的行为是Redux中广泛使用的模式 - 或者来自文档:

  

这称为reducer组合,它是构建Redux应用程序的基本模式。

看一看this example - 我们可以看到TodosTodo减速器,每个减速器处理一大块状态和一个特定动作。请注意,Todo reducer只处理一个todo对象。通常就是这种情况:您经常希望将state的较小块传递给子减速器,而不是state

然而,那就是说,Redux的美妙之处在于你可以根据自己的需要编写减速器。唯一的规定是您的reducer函数必须接受stateaction,并且它必须返回 new state对象。

答案 1 :(得分:0)

你会称它为减速器或纯函数。

  

reducer是一个纯函数,它接受前一个状态和一个动作,并返回下一个状态。

来源:Handling Actions