html - 紫杉醇错误–仅允许一个根html元素

标签 html rust components yew

我在Yew库的组件机制中遇到了问题。如果我在主模型的html宏的宏中包括其他任何html代码,则编译器会提示“仅允许一个根html元素”。

我的结构如下:

main.rs

impl Component for Model {
    // ...

    fn view(&self) -> Html<Self> {
        html! {
            <Navigation />
            <p>{ "Hello World!" }</p>
        }
    }
}

组件/navigation.rs
impl Component for Navigation {
    // ...

    fn view(&self) -> Html<Self> {
        html! {
            <nav class=("uk-navbar-container","uk-padding","uk-padding-remove-bottom","uk-padding-remove-top"), uk-navbar="">
                // ...
            </nav>
        }
    }
}

我怀疑html宏在html标签周围添加了-tag或整个index.html,从而导致了“double” html标签。但是,如何避免这种情况或在使用组件时错过了什么呢?

最佳答案

编译器提示是yew html!宏必须包含一个包含所有内容的元素。

因此,解决该错误的方法是简单地添加一个包装器元素,如下所示:

main.rs

impl Component for Model {
    // ...

    fn view(&self) -> Html<Self> {
        html! {
            <div>
                <Navigation />
                <p>{ "Hello World!" }</p>
            </div>
        }
    }
}

它不必是div,可以是任何html元素。

关于html - 紫杉醇错误–仅允许一个根html元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59595440/

相关文章:

html - 使 2 个元素恰好位于彼此下方

error-handling - 我需要帮助重构 Rust 中的错误处理

delphi - 如何为我的组件创建文件夹(目录)属性编辑器?

delphi - Delphi 的 Crosstab/Cube/Pivot 组件

javascript - 为什么在我编写时,宽度为 100% 的全栏 html 代码不起作用。算了,连复制粘贴都不行。为什么?

javascript - 我想使用 javascript 和表单发送多个值

rust - Rust 中的 HMAC-SHA1

javascript - 如何获取组件的值以 native react

html - 使列表按列排列

git - 是否可以使用 Cargo 编译不包含 Cargo.toml 的外部 git 存储库?