gpt4 book ai didi

dart - 在 js interop 中将 Dart 对象传递给 js 函数

转载 作者:行者123 更新时间:2023-12-03 02:51:16 24 4
gpt4 key购买 nike

我一直在尝试使用 dart 的新 js 互操作。到目前为止,一切都非常简单。但是我不确定的一件事是如何处理这样的 js 东西:

MathJax.Hub.Config({
showProcessingMessages: false,
showMathMenu: false
.. many other different options
});

我可以翻译 MathJax.Hub.Config 部分:

@JS('MathJax') external MathJaxClass get MathJax;
class MathJaxClass {
external HubClass get Hub;
}

@JS('MathJax.Hub')
class HubClass {
external void Config(options);
}

但现在我想让 Config 函数的 options 参数成为一个 Dart 对象。我不知道该怎么做。唯一能让我工作的方法是使用 Map:

  MathJax.Hub.Config(new JsObject.jsify({
'showProcessingMessages': false,
'showMathMenu': false
}));

但这肯定不理想。有什么想法吗?

最佳答案

语法如下:

@anonymous
@JS()
class Config {
external bool get showProcessingMessages;
external bool get showMathMenu;

external factory Config({bool showProcessingMessages, bool showMathMenu});
}

这里的 Config 名称不匹配任何 javascript 名称,因此您可以随意命名。然后你可以这样调用它:

MathJax.Hub.Config(new Config(
showProcessingMessages: false,
showMathMenu: false
));

传递给 js 函数的对象将是一个普通的 javascript 对象:

关于dart - 在 js interop 中将 Dart 对象传递给 js 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33394867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com