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

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


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

父组件 Home/index.jsx

javascript 复制代码
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',

javascript 复制代码
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 在子组件中获取路由参数

javascript 复制代码
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;
相关推荐
mCell11 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
笃行35012 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel13 小时前
前端加密的作用与使用场景
前端
小李不想当小白14 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
计算机魔术师14 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真15 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒15 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
高级程序源16 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画16 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计16 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能