ClojureDart -如何翻译.of(上下文)到ClojureDart?


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的一种方言,Clojure是一种函数式语言,

找到!我不得不使用cljd.flutter.alpha库导出f/widget,并将其包裹在脚手架周围。然后,在小部件中,我必须对我想要继承的小部件使用inherit关键字,在我的例子中是ScaffoldMessenger。这样做之后,我可以使用一个具有kebab-case名称的变量访问ScaffoldMessenger对象。虽然没有看到它可能会令人困惑,但它给出了这样的内容:

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

scaffold-messenger变量对应于m/ScaffoldMessenger,snackbar是返回m/SnackBar小部件的函数。

<代码>

相关内容

  • 没有找到相关文章

最新更新