javascript - 使用 React Router 进行按钮导航
问题描述
页眉:我正在尝试使用 onClick 方法从 Material UI 按钮导航到新页面。我对在我的 handleClickSignIn 函数中写什么感到困惑。
我的 Header.tsx 文件中的代码片段:
const HatsPage = () => (
<div>
<h1>
HATS PAGEHH
</h1>
</div>
)
function handleClickSignIn() {
<Route component= {HatsPage}></Route>
}
const Header = () => (
<div className = 'header'>‚
<h1 className = 'title'>
Instaride
</h1>
<div className="header-right">
<Button onClick= {handleClickSignIn}> Sign In</Button>
<Button> Contact</Button>
</div>
</div>
);
这不起作用,我收到如下错误:
预期的赋值或函数,但得到了表达式
解决方案
您遇到的问题是Route
每次Sign In
单击按钮时都会生成一个组件。
相反,您应该使用Link
如下组件:
const Header = () => (
<div className = 'header'>‚
<h1 className = 'title'>
Instaride</h1>
<div className="header-right">
<Link to={"/login"}> Sign In</Link>
<Button> Contact</Button>
</div>
</div>
这将创建一个链接组件,单击该链接组件将指向/login
URL。然后,要在该 URL 处呈现组件,您还需要定义一个Route
. 您已经这样做了,但需要像这样定义路径:
<Route path={"/login"} component={HatsPage} />
然后请注意Route
,您的Header
组件和任何组件都Link
需要嵌套在 a 的实例中BrowserRouter
。
推荐阅读
- javascript - 在AngularJS中为jQuery datepicker动态设置最大限制
- angular - 一旦 ngIf 完成呈现 html 元素,如何在 ngIf 中触发指令?
- prolog - Prolog - 精确到列表中的一个元素,而不使用大小或长度函数
- c - #define 指令中的 C 类型转换
- android - 如何查看在连接到 Android Studio 之前记录的 Android 日志
- postgresql - 将数据转置为表格表示
- office-js - 检测 Word API 中文本的部分字体样式属性
- ios - 如何以编程方式按下 SearchBar 的取消按钮或将其返回到初始状态?
- android - Android 应用程序崩溃并在 rooturl 上显示错误
- javascript - 如何切换 a 的可见性