Redux操作创建者声明访问最佳实践

时间:2016-01-22 20:39:18

标签: reactjs redux redux-thunk

在redux中,当我们需要访问一个与componentProps没有直接关系但是从这个组件触发的状态属性时(即:存储在状态中的祖父组件id)我们应该尝试通过这个部分触发事件的组件中的状态到动作创建者,即:

onClick={() => doSomething(grandParentId)}

----

function doSomething(grandParentId) {
  console.log(grandParentId)
}

或者我们应该使用redux-thunk从getState获取数据吗?

onClick={doSomething}

----

function doSomething() {
  return (dispatch, getState) => {
    console.log(getState().grandParentId)
  }
}

我知道答案听起来像第一种方法更合适,但我不知何故觉得带有redux-thunk的getState会导致不良做法,我想知道何时应该使用它。

2 个答案:

答案 0 :(得分:2)

如果您的组件中已经包含该信息,我不明白为什么不将它传递给您的操作创建者。在我看来,数据流更容易遵循这种方式。

只有当我需要访问我无法通过动作创建者传递的状态树的一部分时,我才会利用getState()

答案 1 :(得分:1)

如果数据已经处于redux状态,那么我将使用getState访问它。传递的参数越少,IMO就越简单。