小编Non*_*one的帖子

当 Rust wasm_bindgen 对象被添加到向量中时,该对象在 JS 端变为 null

我有两个导出到 Javascript 的结构。我可以创建实例并在 JavaScript 中使用它们,不会出现任何错误,但是当我将实例推入 Rust 端的向量时,出现错误“未捕获错误:空指针传递给 rust”

由于所有权已更改,JS 对象变为 null 是完全正常的,但我还需要保留 JavaScript 对象以便在 JavaScript 端更改内容。

有没有正确的方法来保持“vect”对象不为空并接受更改?

我添加了一个工作示例。您可以在浏览器的控制台中看到错误。

Rust 代码

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
struct Vector3 {
    x: f32,
    y: f32,
    z: f32,
}

#[wasm_bindgen]
impl Vector3 {
    #[wasm_bindgen(constructor)]
    pub fn new() -> Vector3 {
        return Vector3 {
            x: 0.0,
            y: 0.0,
            z: 0.0,
        };
    }
    pub fn get_x(&self) -> f32 {
        self.x
    }
}

#[wasm_bindgen(extends = Object)]
struct Group {
    list: Vec<Vector3>,
}

#[wasm_bindgen]
impl Group {
    #[wasm_bindgen(constructor)] …
Run Code Online (Sandbox Code Playgroud)

rust webassembly wasm-bindgen

5
推荐指数
1
解决办法
1597
查看次数

标签 统计

rust ×1

wasm-bindgen ×1

webassembly ×1