我有一个使用Redux的React应用程序来处理应用程序的整体状态,该应用程序还集成了一些旧的Javascript库来呈现特定的查看器(在画布上)。旧版库为查看者管理自己的状态(我无法访问它)。我现在知道我的一个组件需要在另一个组件中触发查看器上的事件(例如,使用旧库重置查看器)。
我可以想到两个解决方案:
{reset: true}
)。在查看器组件重置查看器后,它直接重置状态本身(例如`{reset:false})。有推荐的方法吗?有什么优点/缺点?选项1的一个缺点似乎是当状态第二次更新({reset: false}
)时会触发重新渲染。
答案 0 :(得分:1)
我提出的另一种方法是指定重置的时间。 如果时间改变,这将触发重新渲染。
on dispatch(reset())
动作:
/var/railroad/{{host_role}}/shared/config/secrets.yml:
file.managed:
- source: salt://rails/secrets.yml
- mode: 400
- user: railroad-{{host_role}}
- group: railroad-{{host_role}}
- template: jinja
- defaults:
role: host_role
db_username: m_u
db_password: {{ salt['grains.get_or_set_hash']('some:place:secret_key_base') }}
STORE:
reset(){
return({
type:constant.RE_RENDER,
payload: new Date().getTime()
})
}
视图只会更新一次。使用另一个pub-sub系统会增加不必要的复杂性,建议不要绕过redux模式。