问题描述
Web应用程序大量使用了来自用户交互的回调,例如鼠标单击,列表选择。
wasmbind-gen
api将回调设置为闭包,这需要静态数据
https://rustwasm.github.io/docs/wasm-bindgen/reference/passing-rust-closures-to-js.html
对于更多非常规的Web应用程序,我的设计最终遇到的情况与例如 Rust FFI,callbacks,and lifetimes
总之,越来越多的数据需要放入static mut
对于Web应用程序,对象和回调非常动态。例如。单击按钮最终会创建一个登录字段。 这就要求更多的数据字段是静态的,从而扩大了设计问题。
看wasm-bindgen
示例,TodoMvc
https://github.com/rustwasm/wasm-bindgen/tree/master/examples/todomvc
通过存储在window.local_storage中,以一种解决方法来处理此问题 https://github.com/rustwasm/wasm-bindgen/blob/master/examples/todomvc/src/store.rs#L15
-
我尝试使用全局静态
static mut _WASM_ELEMA : Vec<ElemA> = Vec::new();
这可以正常工作,但是对于每种结构(例如ElemA
)都是特殊的。
-更新---
常规类型,可以通过
static mut WASM_STORE: Vec<Box<dyn Any>> = Vec::new();
让它可以与基于get
的{{1}}函数一起使用,如果此解决方案可以是{{1 }}商店。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)