锈紫杉,use_state<'hook, T, F>

问题描述 投票:0回答:1

我正在尝试在 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();

rust hook yew
1个回答
0
投票

我成功让它工作了:

代码在这里我试图把头放在文档上,但我只是认为位置是错误的。 “挂钩只能在以下位置使用:函数/挂钩的顶层。”来自 yew 文档

© www.soinside.com 2019 - 2024. All rights reserved.