【发布时间】:2020-03-20 13:12:16
【问题描述】:
该网站正在使用 Reactjs 和 Material UI 开发。
Switch 语句用于在每次更改地址时输出不同的组件。并且按钮应该使用“链接到”移动到 URL。
但我不明白,当我按下按钮时,它不会更改为该组件,但是当我按下“抽屉”按钮时,它会更改为该组件。
我想知道问题是什么。 我认为问题出在以上三个方面。但是完整的工作代码也在这里与 CodeSandbox CodeSandbox URL
[部分 switch 语句]
let contentPlace;
let changePage = () =>{
let location = window.location.pathname;
console.log(location);
switch(location){
case '/':{
contentPlace=<Home />
break;
}
case '/login':{
contentPlace=<SignIn/>
break;
}
}
}
[部分按钮]
<Button variant="outlined" color="inherit" onClick={changePage()}>
Login
</Button>
</Link>
<Link to="/" className="home">
<Button variant="outlined" color="inherit" onClick={changePage()}>
HomE
</Button>
[部分带有 React-dom-Router 的 Switch]
<Switch>
<Route path="/login">
{/* <SignIn /> */}
</Route>
<Route path="/about">
{/* <About /> */}
</Route>
<Route path="/users">
{/* <Users /> */}
</Route>
<Route path="/">
</Route>
{/* <Home /> */}
</Switch>
【问题讨论】:
-
我认为你应该在
react-router-dom中使用<Link>组件,你的onClick={changePage()}也应该改为onClick={changePage} -
仅供参考,您的沙盒工作不正常。
-
为什么这个问题会在 node js 中被标记?
标签: javascript node.js reactjs react-router material-ui