Yas*_*ank 7 javascript reactjs react-router
我一直在尝试在单击按钮时对另一个组件进行简单的重定向,但由于某种原因它不起作用。我想重定向到“/仪表板”并从登录显示 AdminServices,如下所示:
//index.js
ReactDOM.render(<BrowserRouter><App /></BrowserRouter>,
document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
//App.js
<Switch>
<Route path="/" component={Login} />
<Route path="/dashboard" component={AdminServices} />
</Switch>
Run Code Online (Sandbox Code Playgroud)
//登录.js
<Button
onClick={this.login}
>
</Button>
login = () =>{
<Redirect to="/dashboard" />
}
Run Code Online (Sandbox Code Playgroud)
//AdminServices.js
render(){
return(
<div>Test</div>
);
}
Run Code Online (Sandbox Code Playgroud)
小智 20
在react-router-dom v6中,您可以使用useNavigate(),如此处回答。
import { useNavigate } from 'react-router-dom';
const navigate = useNavigate();
navigate('/dashboard');
Run Code Online (Sandbox Code Playgroud)
如果您仍在使用以前的版本,则可以使用TellisenseuseHistory提到的。
import { useHistory } from 'react-router-dom';
const navigate = useHistory();
navigate.push('/dashboard');
Run Code Online (Sandbox Code Playgroud)
Tel*_*nse 16
除了使用 props.history,更好的方法是使用 useHistory 钩子,如下所示:
import { useHistory } from 'react-router-dom'
const MyComponent = (props) => {
const history = useHistory();
handleOnSubmit = () => {
history.push(`/dashboard`);
};
};
Run Code Online (Sandbox Code Playgroud)
你可以这样按功能路由
handleOnSubmit = () => {
this.props.history.push(`/dashboard`);
};
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
| 归档时间: |
|
| 查看次数: |
46038 次 |
| 最近记录: |