它是安全的传递this
到终极版行动的创建者使用React.createClass
withing定义的组件?阵营:如何通过组件的身份Redux的状态
我已经定义了以下减速器:
const unsavedChangesProtectionReducer = handleActions({
[ENABLE_UNSAVED_CHANGES_PROTECTION]: (unsavedChangesProtection, action) => ({protected: true}),
[DISABLE_UNSAVED_CHANGES_PROTECTION]: (unsavedChangesProtection, action) => ({protected: false})},
{protected: false}
)
多个组件可以设置/取消全球state.unsavedChangesProtection.protected标志,并从问题这个解封出现的标志,因为组件不应该取消它如果其他组件已经在此组件之前设置它。
一种解决方案是,以检查是否标志已经设置,如果没有,将其设置,存储有关组件设置标志组件的内部状态的信息,并且该组件已设置标志未设置,如果内部状态的状态。但是,这违反了DRY原则,因为我必须在每个组件中引入完全相同的登录。
更广义的解决方案是将最后突变为全局状态的组件的身份存储为状态本身的成员,以便每个组件都可以从状态中看到它是否相应地发生更改和取消设置。这是有可能在安装时以实现反应,因为每个部件都重新初始化/卸载