当前位置: 首页 > 知识库问答 >
问题:

React路由重定向

唐星晖
2023-03-14

我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示:

//索引。js

ReactDOM.render(<BrowserRouter><App /></BrowserRouter>, 
    document.getElementById("root"));

//应用程序。js

     <Switch>
          <Route path="/" component={Login} />
          <Route path="/dashboard" component={AdminServices} />
        </Switch>

//登录。js

<Button
onClick={this.login}
>
</Button>

login = () =>{
    <Redirect to="/dashboard" />
  }

//管理服务。js

render(){
        return(
            <div>Test</div>
        );
    }

共有3个答案

龙欣德
2023-03-14

简单,使用NavLink代替按钮

import { NavLink } from 'react-router-dom'

<NavLink to="/dashboard"> Dashboard </NavLink>

https://reacttraining.com/react-router/web/api/NavLink

姜智渊
2023-03-14

你可以像这样按函数路由

  handleOnSubmit = () => {
  this.props.history.push(`/dashboard`);
  };

希望这能有所帮助

奚高扬
2023-03-14

而不是使用道具。历史,更好的方法是使用useHistory钩子,如下所示:

import { useHistory } from 'react-router-dom'

const MyComponent = (props) => {
  const history = useHistory();

  handleOnSubmit = () => {
    history.push(`/dashboard`);
  };
};
 类似资料:
  • 英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。

  • 我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档

  • 我想在单击登录页中的按钮后重定向到主页。但是,当我单击地址栏中的按钮时,主页的路径会显示出来(它重定向到主页)…但它不会呈现与该路径相关的组件。它仍然显示带有主页地址的登录页。因此,我必须刷新页面才能呈现主页。这里有什么问题??? 在我的登录页面中…这是我用于单击按钮的功能。。 在我的索引,js页面...

  • 我意识到以前有人问过我这个问题,请容忍我,因为我还在学习这个问题。我想我已经尝试了所有的解决方案,但是没有运气。 问题是:当重定向到时,它没有呈现预期的组件() 我已经实现了一个,如下所示; privaterout.js 这就是我使用它的地方; index.js 在这个问题中要补充几点: 我确认重定向确实发生在(我通过将

  • 当我们想要通知客户端应用程序已移动此URL时,重定向路由非常有用。 可以使用以下函数重定向URL。 static Cake\Routing\Router::redirect($route, $url, $options =[]) 上述功能有三个参数 - 描述路径模板的字符串。 要重定向到的URL。 一个数组,它将路径中的命名元素与该元素应匹配的正则表达式相匹配。 例子 (Example) 在co