我正在构建一个基于 om 的表单,可以查看折叠或展开的子部分。视图状态保存在小节本地状态中:
(定义小节视图 [小节所有者] (具体化 om/IInitState (初始化状态 [this] {:collapsed true}))
问题是每个小节的视图状态可以通过collapse-expand-all 按钮或为每个小节显示的单独按钮以两种方式影响。
为了处理 expand-compress-all 有一个全局折叠状态保存在表单本地状态中:
(defn form-view [数据所有者] (具体化 om/IInitState (初始化状态 [this] {:all-collapsed true})))
显然,这两个按钮on-click
事件都是通过更新本地状态中的折叠状态来处理的。
(om/update-state!所有者:未折叠)
我的问题是我应该如何知道最后更新了哪个状态才能显示正确的视图?
或者在哪里是保存崩溃状态的正确位置(本地状态或应用程序状态),该状态可能受到组件树不同级别的不同触发器的影响?