首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >做一个原子的订阅需要取消两次。只有在使用脱扣器时才会出现问题

做一个原子的订阅需要取消两次。只有在使用脱扣器时才会出现问题
EN

Stack Overflow用户
提问于 2022-09-28 17:03:13
回答 1查看 24关注 0票数 0

当我使用def保存一个原子时,它的工作方式与预期的一样。但是,当我使用defonce时,我必须执行两次:@@my-state。我想使用defonce,因为我希望在重新加载时保留状态。

这如预期的那样工作。

代码语言:javascript
复制
(def my-state (reagent/atom (re-frame/subscribe [::subs/photos])))

这需要两个解序来访问这些值。

代码语言:javascript
复制
(defonce my-state (reagent/atom (re-frame/subscribe [::subs/photos])))

订阅码

代码语言:javascript
复制
(re-frame/reg-sub
  ::photos
  (fn [db [_]]
    (:photos db)))
EN

回答 1

Stack Overflow用户

发布于 2022-09-28 18:18:48

,我想使用defonce,因为我希望在重新加载时保留状态。

那么就不要使用Reagent的原子,而是使用Reagent的订阅。它们的值来自于defined的app-db,它本身就是用defonce定义的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73885322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档