clojuredart-如何将.of(上下文)转换为clojuredart?

发布于 2025-02-06 09:39:20 字数 859 浏览 4 评论 0原文

class SnackBarPage extends StatelessWidget {
  const SnackBarPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
          final snackBar = SnackBar(
            content: const Text('Yay! A SnackBar!'),
            action: SnackBarAction(
              label: 'Undo',
              onPressed: () {
                // Some code to undo the change.
              },
            ),
          );

          // Find the ScaffoldMessenger in the widget tree
          // and use it to show a SnackBar.
          ScaffoldMessenger.of(context).showSnackBar(snackBar);
        },
        child: const Text('Show SnackBar'),
      ),
    );
  }
}

上面是我要转化为clojuredart的代码。 但是,Clojuredart是Clojure的方言,这是一种功能性语言,

class SnackBarPage extends StatelessWidget {
  const SnackBarPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
          final snackBar = SnackBar(
            content: const Text('Yay! A SnackBar!'),
            action: SnackBarAction(
              label: 'Undo',
              onPressed: () {
                // Some code to undo the change.
              },
            ),
          );

          // Find the ScaffoldMessenger in the widget tree
          // and use it to show a SnackBar.
          ScaffoldMessenger.of(context).showSnackBar(snackBar);
        },
        child: const Text('Show SnackBar'),
      ),
    );
  }
}

Above is the code that I want to translate into ClojureDart.
However, ClojureDart is a dialect of Clojure which is a functional language,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

琉璃梦幻 2025-02-13 09:39:21

成立!
我必须使用cljd.flutter.alpha导出f/widget的库,然后将其包裹在脚手架周围。
然后,在小部件中,我必须使用继承关键字与我想继承的小部件(在我的情况下)ackaffoldMessenger。这样做后,我可以访问带有带有烤肉串名称的变量的ackaffoldMessenger对象。虽然它可能会令人困惑而不看到它,但它提供了类似的东西:

(f/widget
:inherit [m/ScaffoldMessenger]
(m/Scaffold
...
:onPressed (.showSnackBar scaffold-messenger snackbar)
...))

使用ackaffold-messenger变量对应于m/capfoldMessengersnackbar正在返回m/snackbar小部件的函数。

Found!
I had to use cljd.flutter.alpha library that exports f/widget, and wraps it around the scaffold.
Then, within the widget, I had to use the inherit keyword with the widget I wanted to inherit, in my case, ScaffoldMessenger. After doing so, I have access to the ScaffoldMessenger object with a variable with a kebab-case name. While it can be confusing without seeing it, it gives something like that :

(f/widget
:inherit [m/ScaffoldMessenger]
(m/Scaffold
...
:onPressed (.showSnackBar scaffold-messenger snackbar)
...))

With scaffold-messenger variable corresponding to m/ScaffoldMessenger, and snackbar being a function that returns a m/SnackBar widget.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文