如何解决yewdux中use_store的编译器错误?
问题分析与解决
错误根源:Yew与Yewdux版本不兼容
你遇到的Hook trait不匹配错误,核心原因是依赖版本不兼容:
- 你的
Cargo.toml中使用了Yew的git主分支版本(当前为0.20+开发版),该版本对Hooktrait做了破坏性重构 - 而Yewdux 0.9.0是针对Yew 0.19.x版本开发的,其
use_store返回的类型实现的是旧版Yew的Hooktrait,导致编译器无法匹配
解决方向
方案1:使用与Yewdux 0.9.0兼容的Yew稳定版
将Yew从git依赖改为指定0.19.x版本,这是最稳妥的方案:
修改Cargo.toml的依赖部分:
[dependencies] yew = { version = "0.19.3", features = ["csr"] } yewdux = "0.9.0"
注:可移除
stdweb依赖,Yew 0.19默认使用web-sys,无需额外引入stdweb
方案2:升级Yewdux到适配Yew 0.20+的版本
若想继续使用Yew的最新git版本,需使用Yewdux的对应开发版(适配Yew 0.20+):
修改Cargo.toml的依赖部分:
[dependencies] yew = { git = "https://github.com/yewstack/yew/", features = ["csr"] } yewdux = { git = "https://github.com/intendednull/yewdux" }
验证步骤
修改依赖后,执行以下命令清除旧编译缓存并重新构建:
cargo clean cargo run
内容的提问来源于stack exchange,提问作者Eli
相关产品推荐
相关产品推荐

