我有以下定义:
伊鲁特:
export interface IRoute{
key: string,
path: string,
exact: boolean,
component: JSX.Element,
private?: boolean
}
IRoutesConfig:
import { IRoute } from "./IRoute";
export default interface IRoutesConfig {
[key : string] : [IRoute]
}
以及我的路由配置,然后将其传递给类以进一步增强
import Login from "../container/Auth/Login/Login";
import IRoutesConfig from "./IRoutesConfig";
const Routes : IRoutesConfig = {
"Auth": [
{
key: "login-page",
exact: true,
component: Login,
path: "/auth/login"
}
]
}
export default Routes;
我正在测试登录功能组件:
import React, { FC, ReactElement } from 'react';
type LoginProps = {
}
const Login : FC<LoginProps> = (props) : ReactElement => {
return (
<>
</>
);
}
export default Login;
这是一个新的项目设置,还没有为登录道具定义任何内容。因此,它当前为空,稍后将进行扩展,内容也是如此,因为我们目前正在设置routes体系结构。
VSCode在Routes: IRoutesConfig
中的"组件"上给了我以下提示:
我当然不是声明类型、道具和钥匙。
最后,路由配置将被提供给RouteManager,它将动态地为'React-Rout-Dom'的Switch
创建Routes
,以及其他一些东西,这取决于我访问它的位置。
它将创建路线图,例如:
<Route key="login-page" path="/auth/login" component={Login} />
然后用于反应容器组件:
...
let authRoutes = RoutesManager.getAllRoutes("Auth");
return (
<Switch>
{authRoutes}
<Redirect key="account-redirect" to="/account" />
</Switch>
);
问:根据我的理解,react-router-dom路由
期望在它的arg组件
中包含一个JSX。元素
,但是我的登录功能组件的返回类型是ReactElement。就我所理解的而言,JSX。元素是这个上下文中的通用ReactElement。登录FC将有孩子。
如何解决将登录FC正确地传递给配置的问题,以供react路由器dom的路由组件稍后使用?
正如我所理解的,错误来自组件: JSX. Element
。您正试图通过向Road
添加一个私有
属性来创建受保护的路由。您可以更改您的IRoute
接口来扩展react-router
定义的类型,这样您就不会再遇到这个问题了。
首先:添加这个导入语句。
import { RouteProps } from "react-router-dom";
第二:将您的IRoute
接口更改为:
export interface IRoute extends RouteProps{
private?: boolean
}
这样,你只是告诉我的IRoute
有所有简单的路由
属性加上私有
。
我试图从后端服务器检索数据,但我得到以下错误:类型'订阅'缺少类型'HomeData'中的以下属性:aSes、聚合器更改、公告、beacon公告和11个以上。 我正在使用以下服务 以及以下界面: 我在组件中调用getData(),如下所示: 我把所有这些都放在我的html模板中
我得到警告,因为警告:失败的道具类型:组件:道具类型是无效的;它必须是一个函数,通常来自包,但收到了 我的代码是: 我的功能运行正常,但出现此控制台错误是否有人可以帮助我解决此警告?
我只是在试着学OAuth。我写了一些代码来测试它。当我提交请求时,我得到{“error”:“invalid_request”,“error_description”:“missing grant type”} 邮递员的错误。 这是我寄给邮递员的东西:
npm包允许我们在TypeScript应用程序中使用反应。我们将组件定义为 在这里,我们必须声明组件道具和状态的类型(在类型变量中)。 在我们声明了这些类型之后,TypeScript使用这些类型来验证组件的使用(传递给它的道具的形状)。 我想围绕这样一个组件创建一个容器。容器将重用组件的道具。但是为了用相同的道具创建另一个组件,我必须重新声明道具的类型。或者从原始零部件文件中导出它们并导入到容器中
我有以下组件,它主要依赖于react native的 我能够输入注释我自己的道具,但在上面的例子中抛出了一个错误 [flow]属性<代码>样式(在道具中找不到属性)常量样式:任意 我知道在typescript中,我可以将接口扩展到Image one,流程中是否有一些东西可以让我的道具以某种方式从继承所有类型?我如何从react native导入这些类型? 编辑我发现了一个叫做交叉点类型的概念,并尝
在我的子组件中,我定义了道具接口,并将其包含在React中。组件。 然后需要将这些道具从父组件传递到子组件。到目前为止,一切都是合理的。。 但是,当我使用react router Typescript中的RouteComponents Props扩展Props接口时,也要求我传递“历史、位置、匹配”,我认为我不应该手动传递。。。 我不认为它与RouteComponentProps特别相关,因为在某