react-router 4.3 js实现跳转

import React, {Component} from 'react';
import { NavLink,Link } from "react-router-dom";
import './index.less';
import PropTypes from 'prop-types'; //这里是重点

import logo from '../../images/hyzklogo.png';
import logoName from '../../images/logo_name.png';

export default class Header extends Component {
    static contextTypes = {   //这里是重点
        router: PropTypes.object.isRequired,
    }
    constructor(props) {
        super(props);
        this.state = {
            keyword:""
        };
        this.handleToSearch=this.handleToSearch.bind(this);
        this.handleChange=this.handleChange.bind(this);
    }
    handleChange(event) {
        this.setState({keyword: event.target.value});
    }
    handleToSearch() {       this.context.router.history.push(`/news_list/search/${this.state.keyword}`)  //这里是重点,实现跳转
    }
    render() {
        return (
               <div className="wrapper">
                   <div className="header">
                       <div className="logo-bar">
                           <div className="container">
                               <Link to="/index"><img src={logo} alt="智库logo" className="logo" /></Link>
                               <Link to="/index"><img src={logoName} alt="智库" className="logo-name" /></Link>
                               <div className="search-bar">
                                   <input type="text" placeholder="搜索感兴趣的军事资讯" value={this.state.keyword} onChange={this.handleChange}/>
                                   <div onClick={this.handleToSearch}>
                                       <i className="iconfont icon-sousuo"></i>
                                   </div>
                               </div>
                           </div>
                       </div>
                       <div className="header-bar">
                           <div className="container">
                               <ul>
                                   <li>
                                       <NavLink to="/" exact activeClassName="nav-active">首页</NavLink>
                                   </li>
                                   <li>
                                       <NavLink to="/intro" activeClassName="nav-active">智库概况</NavLink>
                                   </li>
                                   <li>
                                       <NavLink to="/professor_list" activeClassName="nav-active">专家团队</NavLink>
                                   </li>
                               </ul>
                           </div>
                       </div>
                   </div>
               </div>
        );
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React中使用react-router-dom v6进行跳转的方法如下: 1. 首先,确保你已经安装了react-router-dom v6。你可以使用以下命令进行安装: ```shell npm install react-router-dom@next ``` 2. 在你的组件中引入所需的API: ```javascript import { BrowserRouter as Router, Routes, Route, Link, Navigate } from 'react-router-dom'; ``` 3. 在你的组件中使用`Router`组件包裹你的路由: ```javascript export default function App() { return ( <div className="app"> <Router> {/* 在这里定义你的路由 */} </Router> </div> ); } ``` 4. 使用`Routes`组件定义你的路由规则,并使用`Route`组件定义每个具体的路由: ```javascript export default function App() { return ( <div className="app"> <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> {/* 其他路由规则 */} </Routes> </Router> </div> ); } ``` 5. 在需要进行跳转的地方,使用`Link`组件或`Navigate`组件进行跳转: - 使用`Link`组件: ```javascript import { Link } from 'react-router-dom'; function Home() { return ( <div> <h1>Home</h1> <Link to="/about">Go to About</Link> </div> ); } ``` - 使用`Navigate`组件: ```javascript import { Navigate } from 'react-router-dom'; function Home() { return ( <div> <h1>Home</h1> <button onClick={() => <Navigate to="/about" />}>Go to About</button> </div> ); } ``` 请注意,以上是react-router-dom v6的用法,与v5有一些不同。在v6中,`<Switch>`组件被替换为`<Routes>`组件,`<Redirect>`组件被替换为`<Navigate>`组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值