我是Rust和Yew的新手,我需要一些帮助来在Yew的应用程序组件中应用useState钩子,看起来像这样:
struct BookList
use gloo_net::http::Request;
use yew::prelude::*;
#[function_component(App)]
pub fn app() -> Html {
let (books: UseStateHandle<Vec<BookList>> = use_state(|| vec![]);
async fn fetch_books() {
let response: Vec<> = Request::get("http://localhost:3000/books");
let cloned_books = books.clone():
cloned_books.set(response.data);
}
html! {
<div>
{"App"}
</div>
}
}
我得到了错误不匹配的类型。在我有括号的地方,它说它需要一个结构UseStateHandle
,找到元组。
1条答案
按热度按时间rn0zuynd1#
我不知道为什么在
books
之前需要一个开括号,但我认为这就是与元组混淆的原因。如果你在获取数据时分配类型,我推测Rust应该足够聪明,能够从后面的上下文中理解这应该是
BookList
向量的句柄。因此,我会在那里分配类型(你几乎已经有了,但它缺少类型):请注意,我没有尝试过这些。请随意评论后续例外情况,以便我们可以一起详细说明。