Я пытаюсь понять, как передать элементы маршрута в корневой элемент машинописного текста. Сейчас я использую "@solidjs/router": "^0.13.6"
. Вот демонстрация того, чего я хочу достичь. Я хочу выполнить маршрутизацию на основе конфигурации для своего проекта.
export const routes: RouteDefinition[] = [
{
path: '/',
component: Home,
},
]
const App: Component = (children: JSX.Element) => {
return (
<>
<Navbar />
<main>
{children}
</main>
<Footer />
</>
);
}
render(
() => (
<Router root = {App}>
{routes}
</Router>
),
root,
);
Это дает мне ошибки типа. Я понятия не имею, какие типы использовать и правильна ли вообще моя структура.
App
выдает мне эту ошибку:
Type '(children: JSX.Element) => JSX.Element' is not assignable to type 'Component'.
Types of parameters 'children' and 'props' are incompatible.
Type '{}' is not assignable to type 'Element'.
{children}
выдает мне эту ошибку:
Property 'children' does not exist on type 'JSX.IntrinsicElements'
@Dogbert Я добавил ошибки
children
внутри объекта.{props.children}
.Component
по умолчанию не имеет дочерних элементов. Все свойства необходимо указать самостоятельно.Окончательный код:
const App: Component<{children: JSX.Element}> = (props) => {
return (
<>
<Navbar />
<main>
{props.children}
</main>
<Footer />
</>
);
}
Спасибо, это сработало! Также мне просто нужно было сделать одну дополнительную модификацию. const App: Component<{children?: JSX.Element}> = (props) => {
В чем ошибка?