如何导入组件?



我有一个main.rs文件,看起来像这样:

fn main() {
yew::Renderer::<App>::new().render();
}

但是我需要将App组件导入main.rs。从我在教程中看到的,我应该能够做到:use <name_of_app>::App;,但这不起作用。它会告诉我不是我使用的crate的一部分,Rust分析器也没有提出建议。

我尝试了这种方法,但是Rust分析器抱怨App被定义了多次:

mod App;
use App::App;
fn main() {
yew::Renderer::<App>::new().render();
}

我也遇到过同样的问题,但是我用不同的方法解决了,希望你可以参考下面的内容

我已经在组件文件中包装了App组件的渲染方法,如app.rs

#[function_component(App)]
fn app() -> Html {
// some code
}
pub fn render() {
yew::Renderer::<App>::new().render();
}

然后在main.rs中,你可以使用app mod并调用app::render()

mod app;
fn main() {
app::render();
}

您需要为定义App的文件定义一个模块。mod name_of_app; use name_of_app::App;

src/main.rs

mod module_for_app;
use module_for_app::App;
fn main() {
yew::Renderer::<App>::new().render();
}

src/module_for_app.rs

pub struct App {
// ....
}

参见the Book中关于模块的部分以获取更多信息

相关内容

  • 没有找到相关文章

最新更新