我正在使用wasm bindgen,并且具有以下功能:
#[wasm_bindgen]
pub fn obj(0: &JsValue){
console::log_1(o);
}
在js中,我将此函数称为obj({name: "john"});
而且效果很好,但是当我尝试console::log_1(o.name);
时
它给出了指向unknown field
的错误name
答案 0 :(得分:2)
BETWEEN 9 AND 15
BETWEEN 3 AND 15
没有字段JsValue
。要获取此字段,您必须声明JS对象。
变体1
为您的依赖项添加Serde:
name
锈迹代码:
serde = "^1.0.101"
serde_derive = "^1.0.101"
变体2
另一种方法是直接使用wasm-bindgen,但我从未使用过。我认为它应该像这样工作:
extern crate serde;
#[derive(Serialize, Deserialize)]
pub struct User {
pub name: String,
}
#[wasm_bindgen]
pub fn obj(o: &JsValue){
let user: User = o.into_serde().unwrap();
console::log_1(user.name);
}