我正在尝试在 Yew 中实现一个钩子:
pub fn get_toggle_key(v: Vec<Video>, video_index: UseStateHandle<usize>) -> Callback<KeyboardEvent> {
let videos = v.clone();
let current_video_index = video_index;
let current_video_index = use_state(|| 0);
Callback::from(move |event: KeyboardEvent| {
if event.key() == "w" || event.key() == "s" {
let current_index = current_video_index.get();
//... more code ...
我在最后一行 .get() 收到此错误消息:
error[E0599]: no method named `get` found for opaque type `impl Hook<Output = yew::UseStateHandle<{integer}>> + '_` in the current scope
--> src/components/organisms/keydown_logic.rs:16:53
|
16 | let current_index = current_video_index.get();
| ^^^ method not found in `impl Hook<Output = UseStateHandle<{integer}>>`
我已经成功地将
use_state(|| 0);
函数与 .clone() 一起使用:
github
但是当我将它放入函数中时,我无法使其工作。有什么解决方案或建议吗?
致以诚挚的问候
我试过了
let current_index = current_video_index.clone();
我成功让它工作了:
代码在这里我试图把头放在文档上,但我只是认为位置是错误的。 “挂钩只能在以下位置使用:函数/挂钩的顶层。”来自 yew 文档