当前位置: 首页 > news >正文

笔记二十、使用路由Params进行传递参数

20.1、在父组件中设置路由参数


<NavLink to={`classify/${this.state.name}`} className={this.activeStyle}>classify</NavLink>

父组件 Home/index.jsx

import React from "react";
import {NavLink, Outlet} from "react-router-dom";

class App extends React.Component {

    // 类组件中不能用const定义变量
    // 选中高亮
    activeStyle = ({isActive}) => {
        return isActive ? 'background' : "";
    };
    state = {name: 'lcq-lcq'};

    render() {
        return (
            <div>
                首页的页面
                <div style={{display: "flex", justifyContent: 'center', marginTop: '20px'}}>
                    <NavLink to={`classify/${this.state.name}`} className={this.activeStyle}>classify</NavLink>
                    <NavLink to='navigation' className={this.activeStyle}>navigation</NavLink>
                </div>
                <div style={{background: 'red'}}>
                    {/*<!-- Renders the child route's element, if there is one. -->*/}
                    <Outlet/>
                </div>
            </div>);
    }
}

export default App;

20.2 在路由表中设置路由参数

path: 'classify/:param',

import {Navigate} from "react-router-dom";
import Home from "../components/Home";
import About from "../components/About";
import Classify from "../components/Home/components/Classify.jsx";
import Navigation from "../components/Home/components/Navigation.jsx";

export default [
    {
        path: '/home',
        element: <Home/>,
        children: [
            {
                path: 'classify/:param',
                element:<Classify />
            },
            {
                path: 'navigation',
                element:<Navigation />
            },
        ]
    },
    {
        path: '/about',
        element: <About/>,
    },
    {
        path: '/',
        element: <Navigate to='about'/>,
    }
]

20.3 在子组件中获取路由参数

import React from 'react';
import {useParams} from "react-router-dom";

const Classify = () => {
    const params = useParams();
    console.log(params);
    return (
        <div>
            分类的页面
            <div>
                父组件home传递的参数:{params.param}
            </div>
        </div>
    );
}

export default Classify;

相关文章:

  • JAVA文件IO, File类, 字符流,字节流
  • vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
  • 振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(8)
  • nodejs669在线图书借阅管理系统vue前端
  • Matlab进阶绘图第34期—双三角热图
  • 机器学习的复习笔记2-回归
  • springBoot设置多数据源
  • css实现水波纹效果
  • 2024年天津艺术职业学院专升本报名工作的通知
  • python读取PDF文件中的指定页码的范围并存储到指定的文件名
  • Java中的Integer.bitCount浅析
  • 初识JVM(简单易懂),解开JVM神秘的面纱
  • C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词中篇)
  • 04_Flutter自定义Slider滑块
  • filebeat(远程收集日志工具)
  • 大模型训练为什么用A100不用4090
  • Anaconda离线下载torch与安装包
  • QT配合CSS隐藏按钮
  • 建筑红模板尺寸规格
  • Python web自动化测试 —— 文件上传
  • 溢价26.3%!保利置业42.4亿元竞得上海杨浦宅地,楼板价80199元/平方米
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 陕西澄城樱桃在上海推介,向长三角消费者发出“甜蜜之邀”
  • 乡村快递取件“跑腿费”屡禁不止?云南元江县公布举报电话
  • 司法部谈民营经济促进法:对违规异地执法问题作出禁止性规定
  • 马上评|持续对标国际一流,才有22项“全球最优”