【问题标题】:ClojureDart: How to pass data to parent state widget?ClojureDart:如何将数据传递给父状态小部件?
【发布时间】:2022-07-29 18:43:39
【问题描述】:

我有一个 Scaffold 父小部件,我在其中定义了一个变量 transforms,其中包含一个偏移向量。 子小部件应该使用 CustomPainter 显示这些点。 现在,我只是将我的变量 transforms 作为参数传递给子小部件。

问题是,我想在每次按下 floatActionButton 时向我的向量添加一个元素,该元素写在我的父小部件中;当我点击它时,它不会出现在屏幕上(孩子没有得到信息)。

那么如何让小部件进行通信呢?

【问题讨论】:

    标签: flutter clojure


    【解决方案1】:

    答案很简单。 小部件从另一个小部件继承信息的方式是使用f/widget 函数和:inherit 关键字。示例:

    (f/widget
    :inherit [m/Theme]
    )
    

    为了从 Theme 小部件及其内部状态数据继承。 但事实并非如此,在您想让数据可用/可共享的父小部件中,您必须在 :bind 映射中定义您的数据。 示例:

    (def child
      (f/widget
        :inherit [:transforms]
    ;; don't forget to dereference it when you want to use it
    ;; (dart:core/print @transforms)
    ...))
    
    (def parent
      (f/widget
        :bind {:transforms [(m/Offset 0 0) (m/Offset 1 0)]}
    ...))
    
    

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2021-08-29
      • 2019-08-15
      • 1970-01-01
      相关资源
      最近更新 更多