ReactComponent не имеет общих свойств с типом IntrinsicAttributes & {children ?: ReactNode; } 'при использовании Route render - PullRequest
1 голос
/ 11 марта 2020

При использовании:

<Route path={rootPath} exact render={props => <LoginLayout {...props} />} />

в машинописном тексте LoginLayout при появлении ошибки:

Type '{ history: History<PoorMansUnknown>; location: Location<PoorMansUnknown>; match: match<any>; staticContext?: StaticContext | undefined; }' has no properties in common with type 'IntrinsicAttributes & { children?: ReactNode; }'.ts(2559)

Я пытался добавить:

const LoginLayout:FunctionComponent = (props: any) => { ... };

<Route path={rootPath} exact render={(props: any) => <LoginLayout {...props} />} />

Но это не работает Я также попробовал:

const LoginLayout:FunctionComponent = (props: RouteComponentProps) => { ... };

<Route path={rootPath} exact render={(props: RouteComponentProps) => <LoginLayout {...props} />} />

И это не работает ...

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Расширьте 'RouterComponentProps' из'act-router-, а затем используйте его в своем функциональном компоненте

import React, { FunctionComponent } from "react";
import { RouteComponentProps } from "react-router";

type Props = { component: FunctionComponent } & RouteComponentProps;

const LoginLayout: FunctionComponent<Props> = () => {...};

export default LoginLayout;
0 голосов
/ 11 марта 2020

Он жалуется, потому что вы передаете реквизиты (RouteComponentProps) компоненту, который не ожидает их получения. Чтобы исправить:

const LoginLayout: FunctionComponent<RouteComponentProps> = () => {...};

Или еще короче:

const LoginLayout: FC<RouteComponentProps> = () => {...};

Детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...