首页 > 其他分享 >React动态路由

React动态路由

时间:2022-11-23 23:34:58浏览次数:33  
标签:arr tit React item state 动态 id 路由

动态路由传参有三种方式:

params方式
  • 注册路由的时候通过:params的形式来声明

    {/* 通过:id声明我们要传递的参数是id */}
    <Route path="/detail/:id" component={Detail}></Route>
  • 路由匹配

    <ul>
                      {
                          this.state.arr.map(item => (
                              <li key={item.id}>
                                  <NavLink to={'/detail/' + item.id}>{item.tit}</NavLink>
                              </li>
                          ))
                      }
                  </ul>
    <ul>
                      {
                          this.state.arr.map(item => (
                              <li onClick={() => { this.props.history.push('/detail/' + item.id) }} key={item.id}>
                                  {item.tit}
                              </li>
                          ))
                      }
                  </ul>
  • 在组件中获取params方式传递参数

    const { id } = this.props.match.params
query方式
  • query方式传递的参数不需要在注册路由的时候声明

    <Route path="/details" component={Details}></Route>
  • 路由匹配

    <ul>
                      {
                          this.state.arr.map(item => (
                              <li key={item.id}>
                                  <NavLink to={'/details?id=' + item.id}>{item.tit}</NavLink>
                              </li>
                          ))
                      }
                  </ul>
  • 在组件中获取query方式传递的参数

    this.props.location.search.split('=')[1]
state方式
  • state方式传递的参数也不需要在注册路由的时候声明

    <Route path="/dstate" component={Dstate}></Route>
  • 路由匹配

    <ul>
                      {
                          this.state.arr.map(item => (
                              <li key={item.id}>
                                  <NavLink to={{ pathname: '/dstate', state: { id: 5 } }}>{item.tit}</NavLink>
                              </li>
                          ))
                      }
                  </ul>
  • 在组件中获取传递的参数

     console.log(this.props.location.state)
  •  

标签:arr,tit,React,item,state,动态,id,路由
From: https://www.cnblogs.com/toufuwqm/p/16920518.html

相关文章

  • React---编程式导航/声明式导航
    声明式导航通过NavLink来实现路由跳转的导航编程式导航通过js来实现路由的跳转import{Component}from"react";​exportdefaultclassNewsextendsCo......
  • react-infinite-scroll-component
    react-infinite-scroll-component  Acomponenttomakeallyourinfinitescrollingwoesgoawaywithjust4.15kB! PullDowntoRefresh featureadded.An......
  • react-infinite-scroll-component 中文文档
    react-infinite-scroll-component中文文档小遁哥关注0.1912020.07.1822:25:10字数553阅读16,064官网地址:https://github.com/ankeetmaini/react-infinite-sc......
  • Java动态编译
    https://www.cnblogs.com/newAndHui/p/14918955.htmlpackageutils;importjavax.tools.*;importjava.io.ByteArrayOutputStream;importjava.io.IOException;impor......
  • 动态规划- [USACO1.5][IOI1994]数字三角形 Number Triangles
    [USACO1.5][IOI1994]数字三角形NumberTriangles题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以......
  • React 组件通信总结
    React组件通信总结父子通信传递数据(父传子)与传递方法(子传父)/**@Author:[email protected]*@Date:2022-11-2116:02:17*@LastEditors:Hua......
  • #yyds干货盘点# 动态规划专题:分割等和子集
    1.简述:描述给定一个只包含正整数的数组nums,请问能否把这个数组取出若干个数使得取出的数之和和剩下的数之和相同。数据范围:  ,数组中的元素满足 输入描述:第一行输入一......
  • mysql隔离级别参数和会话动态设置--笔记
    1、参数设置可选参数有:READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE.如:transaction_isolation=REPEATABLE-READ或transaction-isolation=READ-CO......
  • JDK动态代理深入剖析
    1基于接口的代理模式什么是代理?简单来说,代理是指一个对象代替另一个对象去做某些事情。例如,对于每个程序员来说,他都有编程的能力:interfaceProgrammable{voidd......
  • vite+vue3批量导入静态资源图片;动态绑定大量图片
    vite版本:vite3;vue版本:vue3打包上线后发现,动态绑定的图片皆失效。单图可用import导入解决,但是若有大量图片,一一导入则耗时耗力。vue2+webpack可用require解决批量导......