我正在使用stdweb library从JavaScript调用Rust函数:
#[js_export]
fn handleClick(e: Value) {
js!{ alert("Hello!"); }
}
它可以工作,但我必须添加名称空间Module.exports.
才能调用它:
React.createElement("p",{onClick: e => Module.exports.handleClick(e) }, ... }
如何隐藏此命名空间或使其更小?
发布于 2018-07-04 03:23:20
除非我先导出(#[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}, ...);
https://stackoverflow.com/questions/51083241
复制相似问题