红豆杉组件问题:仅允许一个根html元素

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

我对Rust Yew的组件机制有疑问。如果我在主模型的html宏的宏中包括其他任何html代码,则编译器会抱怨:“仅允许一个根html元素”。

我的结构如下:

main.rs

impl Component for Model {
    // ...

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

components / 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,从而导致了“双重” html标签。但是,如何避免这种情况或在使用组件时错过了什么呢?

html rust components yew
1个回答
0
投票

编译器抱怨是紫杉html!宏必须包含一个包含所有内容的元素。

因此,解决该错误的方法是简单地像这样添加包装器元素:

main.rs

impl Component for Model {
    // ...

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

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

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