我正在使用 stdweb library从 JavaScript 调用 Rust 函数:
#[js_export]
fn handleClick(e: Value) {
js!{ alert("Hello!"); }
}
它可以工作,但我必须添加命名空间 Module.exports.
才能调用它:
React.createElement("p",{onClick: e => Module.exports.handleClick(e) }, ... }
如何隐藏此命名空间或使其变小?
最佳答案
我无法通过 JavaScript 按名称调用 Rust 函数,除非我先导出它 (#[js_export]
)。但是,来自 stdweb library 的 js!
宏允许 JavaScript 代码调用常规 Rust 函数:
fn handleClick(e: Value) {
js!{ alert("Hello!"); }
}
调用它:
js!{
React.createElement("p",{onClick: @{handleClick} }, ...);
}
或者,如果您确实需要为函数命名:
js!{
const fct = @{handleClick};
React.createElement("p",{onClick: fct}, ...);
关于javascript - 如何在没有命名空间的情况下从 JavaScript 调用 Rust 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51083241/