Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript路由错误-没有与此调用匹配的重载_Javascript_Reactjs_Typescript_Routes - Fatal编程技术网

Javascript Typescript路由错误-没有与此调用匹配的重载

Javascript Typescript路由错误-没有与此调用匹配的重载,javascript,reactjs,typescript,routes,Javascript,Reactjs,Typescript,Routes,当点击按钮时,我试图重定向到注册页面,但是,我收到“没有重载匹配此呼叫错误”。我试图用谷歌搜索这个错误,但是它看起来很广泛,而且我对Typescript还不太熟悉,所以不确定如何修复它 单击按钮时,我应该如何修复错误以及如何显示注册表单 // Main.tsx import React from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter, Route, Switch, useRouteMatch, useP

当点击按钮时,我试图重定向到注册页面,但是,我收到“没有重载匹配此呼叫错误”。我试图用谷歌搜索这个错误,但是它看起来很广泛,而且我对Typescript还不太熟悉,所以不确定如何修复它

单击按钮时,我应该如何修复错误以及如何显示注册表单

// Main.tsx
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route, Switch, useRouteMatch, useParams } from 'react-router-dom';
import Button from '@material-ui/core/Button';
import Link from '@material-ui/core/Link';
import { SignUp } from "./SignUp";

function Main() {
    // some stuff above
    <Button component= { Link } to="/signup" variant="contained" color="primary">Sign up!</Button>
    // some stuff below
}

ReactDOM.render((
    <BrowserRouter>
        <Switch>
            <Route path="/">
                <Main />
            </Route>
            <Route path="/signup">
                <SignUp />
            </Route>
        </Switch>
    </BrowserRouter>),document.getElementById("main")
);

//Main.tsx
从“React”导入React;
从“react dom”导入react dom;
从“react router dom”导入{BrowserRouter,Route,Switch,useRouteMatch,useParams};
从“@material ui/core/Button”导入按钮;
从“@material ui/core/Link”导入链接;
从“/SignUp”导入{SignUp};
函数Main(){
//上面有些东西
注册
//下面有些东西
}
ReactDOM.render((
),document.getElementById(“main”)
);
这是我收到的错误消息:

TS2769:没有与此调用匹配的重载。 重载1/3'(道具:{href:string;}&{children?:ReactNode;color?:color;disableElevation?:boolean;disableFocusRipple?:boolean;endIcon?:ReactNode;fullWidth?:boolean;href?:string;size?:“中”;“小”startIcon?:ReactNode;变量?:“文本”;…1更多…|“包含”;}&{}&CommonProps&Pick):元素',出现以下错误。 类型“{children:string;component:OverridableComponent>;to:string;Type:string;fullWidth:true;variant:“contained”;color:“primary”;className:string;onClick:()=>void;}”不可分配给类型“IntrinsicAttributes&{href:string;}&”{children?:ReactNode;color?:color;disableElevation?:boolean;disableFocusRipple?:boolean;…5更多…;变量?:“text”|…1更多…|“contained”;}&&{…}&CommonProps&Pick”。 属性“component”不存在于类型“IntrinsicatAttributes&{href:string;}&{children?:ReactNode;color?:color;disableElevation?:boolean;disableFocusRipple?:boolean;…5更多…”变量?:“text”|…1更多…|“包含”}&{…}&CommonProps&Pick”。 重载第2个,共3个,'(props:{component:OverridableComponent>;}&{children?:ReactNode;color?:color;disabled?:boolean;disableElevation?:boolean;…6更多…;变量?:“text”|…1更多…|“contained”;}&{…}&CommonProps&Pick):元素',给出以下错误。 类型“string”不可分配给类型“never”。 重载3/3'(props:DefaultComponentProps>>):Element',出现以下错误。 类型“{children:string;component:OverridableComponent>;to:string;Type:“submit”;fullWidth:true;variant:“contained”;color:“primary”;className:string;onClick:()=>void;}”不可分配给类型“IntrinsicAttributes&{children?:ReactNode;color?:color;disableElevation?:boolean;disableFocusRipple?:boolean;endIcon?:ReactNode;…4更多…;变体?:“text”|…1更多…|“contained”;}&{…}&CommonProps&Pick”。
属性“component”不存在于类型“IntrinsicattAttributes&{children?:ReactNode;color?:color;disableElevation?:boolean;disableFocusRipple?:boolean;endIcon?:ReactNode;…4更多…;变体?:“text”|…1更多…|“包含”}&{…}&CommonProps&Pick.

您可以更改路由并尝试这样定义路由吗?我希望这会有所帮助

<Route path="/signup" component={SignUp} />

这是material ui的一个例外,它意味着您的组件使用了它不应该拥有的道具

如果您这样做:

import Button from '@material-ui/core/Button';
import Link from '@material-ui/core/Link';

<Button component={Link} to="/signup" variant="contained" color="primary">Sign up!</Button>
从“@material ui/core/Button”导入按钮;
从“@material ui/core/Link”导入链接;
注册
你说react,你想将一个按钮呈现为一个材质Ui链接。问题是,材质Ui链接没有“to”属性。因此你得到了一个异常

如果使用React Router,请按以下方式更改代码:

import { Link as RouterLink } from "react-router-dom";
import Button from "@material-ui/core/Button";

<Button component={RouterLink} to="/singup" variant="contained" color="primary">Sign up!</Button>
从“react router dom”导入{Link as RouterLink};
从“@物料界面/核心/按钮”导入按钮;
注册
如果您这样做,您会告诉React您希望从React router dom将您的按钮呈现为RouterLink。此链接现在确实有一个您习惯的道具


或者,您可以使用“href”来自material ui Link组件的道具,但这将打乱您的路由,因为这将呈现一个普通的
而不是React路由器

您导入了注册组件吗?是的,我忘记了在代码示例中包含,让我编辑。我尝试按照您的建议进行操作,但错误仍然存在there@M.Ng是吗你用component={RouterLink}试试这个例子吗?是的,我遵循了你的example@M.Ng尝试升级材质ui,这可能是他们键入的错误,因为上面的示例适用于我的代码(材质ui 4.9.13)“@material ui/core”:“^4.10.2”、“@material ui/icons”:“^4.9.1”,您指的是哪个材质ui?