首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Om.Next生命周期函数中关闭局部状态

在Om.Next生命周期函数中关闭局部状态
EN

Stack Overflow用户
提问于 2017-11-08 13:33:30
回答 1查看 64关注 0票数 1

我想做一些类似于Reagent form-3组件的事情,这些组件使我能够定义一些共享(静态) vars来用于生命周期函数。

基本上,我的问题是如何在下面的Reagent代码片段中构造类似于let的东西?我似乎不知道如何使用Om的defui宏正确地完成这一任务。

一个简单的例子是生成一个内部id,我可以通过gdom/getElement访问组件的特定实例的所有生命周期函数。

代码语言:javascript
运行
复制
(defn my-component
  [x y z]  
  (let [id (gensym "my-component-")]  ;; <-- how to do this in Om?
     (reagent/create-class                 
       {:component-did-mount (...)
        :component-will-mount (...)          
        :reagent-render
         (fn [x y z] (js/console.log id)))) ;; <-- id is available
EN

回答 1

Stack Overflow用户

发布于 2017-11-08 14:21:40

您可以使用om.next/set-state!om.next/update-state!om.next/get-state对组件本地状态进行写入、更改和读取。

然而,组件本地状态是应用程序状态的糟糕的近亲。要使用app状态,请给您的defui组件一个is,并简单地组成一个关键字,该关键字是组件查询的一部分。然后设置、读取和变异根据您发明的关键字分派的多个方法。

另外,如果您使用的是Fulcro而不是Om,那么您将不需要。

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

https://stackoverflow.com/questions/47181093

复制
相关文章

相似问题

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