在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会导致不良做法,我想知道何时应该使用它。
答案 0 :(得分:2)
如果您的组件中已经包含该信息,我不明白为什么不将它传递给您的操作创建者。在我看来,数据流更容易遵循这种方式。
只有当我需要访问我无法通过动作创建者传递的状态树的一部分时,我才会利用getState()
。
答案 1 :(得分:1)
如果数据已经处于redux状态,那么我将使用getState
访问它。传递的参数越少,IMO就越简单。