22.1 父组件设置state路由参数
className={this.activeStyle}>classify
父组件 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: 'elendaLee', age: 20};
-
- render() {
- return (
- <div>
- 首页的页面
- <div style={{display: "flex", justifyContent: 'center', marginTop: '20px'}}>
- <NavLink to='classify' state={{param_C: this.state.name, param_D: this.state.age}}
- className={this.activeStyle}>classifyNavLink>
- <NavLink to='navigation' className={this.activeStyle}>navigationNavLink>
- div>
- <div style={{background: 'red'}}>
- {/**/}
- <Outlet/>
- div>
- div>);
- }
- }
-
- export default App;
22.2 子组件获取state参数
- import React from 'react';
- import {useLocation} from "react-router-dom";
-
- const Classify = () => {
- // 两次结构赋值
- const {
- state: {
- param_C, param_D
- },
- } = useLocation();
- return (
- <div>
- 分类的页面
- <div>
- 父组件home传递的参数1:{param_C}
- 父组件home传递的参数2:{param_D}
- div>
- div>
- );
- }
-
- export default Classify;
路由表无需改动
- 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',
- element: <Classify/>
- },
- {
- path: 'navigation',
- element: <Navigation/>
- },
- ]
- },
- {
- path: '/about',
- element: <About/>,
- },
- {
- path: '/',
- element: <Navigate to='about'/>,
- }
- ]