Redux action creators 状态访问最佳实践
Redux action creators state access best practices
在 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 会导致不良做法,我想知道什么时候应该使用它。
如果您的组件中已有该信息,我不明白为什么不将其传递给您的动作创建者。在我看来,这样更容易遵循数据流。
只有当我需要访问我无法通过 action creator 传递的部分状态树时,我才会利用 getState()
。
如果数据已经处于 redux 状态,那么我将使用 getState
访问它。传递的参数越少,IMO 越简单。
在 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 会导致不良做法,我想知道什么时候应该使用它。
如果您的组件中已有该信息,我不明白为什么不将其传递给您的动作创建者。在我看来,这样更容易遵循数据流。
只有当我需要访问我无法通过 action creator 传递的部分状态树时,我才会利用 getState()
。
如果数据已经处于 redux 状态,那么我将使用 getState
访问它。传递的参数越少,IMO 越简单。