首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在没有命名空间的情况下从JavaScript调用Rust函数?

如何在没有命名空间的情况下从JavaScript调用Rust函数?
EN

Stack Overflow用户
提问于 2018-06-28 20:42:03
回答 1查看 436关注 0票数 1

我正在使用stdweb library从JavaScript调用Rust函数:

代码语言:javascript
复制
#[js_export]
fn handleClick(e: Value) {
    js!{ alert("Hello!"); }
}

它可以工作,但我必须添加名称空间Module.exports.才能调用它:

代码语言:javascript
复制
React.createElement("p",{onClick: e => Module.exports.handleClick(e) }, ... }

如何隐藏此命名空间或使其更小?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 03:23:20

除非我先导出(#[js_export]),否则我无法在JavaScript中按名称调用Rust函数。但是,stdweb library中的js!宏允许JavaScript代码调用常规的Rust函数:

代码语言:javascript
复制
fn handleClick(e: Value) {
    js!{ alert("Hello!"); }
}

要调用它:

代码语言:javascript
复制
js!{
    React.createElement("p",{onClick: @{handleClick} }, ...);
}

或者,如果您确实需要为函数命名:

代码语言:javascript
复制
js!{
    const fct = @{handleClick};
    React.createElement("p",{onClick: fct}, ...);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51083241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档