我正在使用stdweb library从JavaScript调用Rust函数:
#[js_export]
fn handleClick(e: Value) {
js!{ alert("Hello!"); }
}
它可以工作,但是我必须添加命名空间Module.exports.
来调用它:
React.createElement("p",{onClick: e => Module.exports.handleClick(e) }, ... }
如何隐藏此命名空间或使其更小?
答案 0 :(得分:0)
除非我先导出(#[js_export]
),否则无法从JavaScript中按名称调用Rust函数。但是,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}, ...);