Rust Tauri调用Command提示缺少字段但已传入的问题排查
Tauri命令调用报错:missing field
cause_error的解决方法 错误提示missing field 'cause_error'的核心原因是前端传参的结构与Rust定义的结构体不匹配。
问题分析
你的Rust代码中,命令decrypt_local_database_with_pin接收的参数是CommandValue<DecryptLocalDatabaseWithPinData>,这个结构体要求包含两个字段:
cause_error: boolvalues: T(这里T是DecryptLocalDatabaseWithPinData,包含pin: String)
但你的TypeScript代码把causeError放在了data的同级,而非嵌套到data对象内部,同时pin也没有放到values字段下,导致Rust无法正确解析参数结构。
修正后的TypeScript代码
encryptLocalDatabaseWithPin(pin: string) { return invoke("decrypt_local_database_with_pin", { data: { causeError: true, values: { pin } } }); }
结构对应说明
修正后的参数结构完全匹配Rust的定义:
- 前端
data对象对应Rust的CommandValue实例 causeError(驼峰)会被Tauri自动转换为cause_error(蛇形),匹配结构体字段values: { pin }对应Rust的values: DecryptLocalDatabaseWithPinData { pin }
这样调用就能正确触发后端的命令逻辑,不会再出现字段缺失的错误。
内容的提问来源于stack exchange,提问作者user2037559
相关产品推荐
相关产品推荐

