通过React Router传递参数

Zvi薄荷糖

我是React的新手,我有以下应用程序:(index.js

import ReactDOM from 'react-dom'
import {Component} from 'react';
import './style.css'

import {
  BrowserRouter as Router,
  Switch,
  Route,
  Link
} from "react-router-dom";


import Header from './components/Header'
import Body from './components/Body'
import Footer from './components/Footer'

class App extends Component {
    render() {
        return (
            <div id="layout">
              <Header />
              <Body />
              <Footer />
            </div>
          );
    }
}

ReactDOM.render( <App />, document.querySelector("#root"));

每次我将localhost:portIm重定向到此componenet时,我都想使用Router并提取数据,例如:

localhost:port/instanceName=valuevalue仅当valueisx或时y,才可以将我带到具有道具的同一个零件上吗?

Sadrzadehsina

我建议您以这种方式进行设置。这只是一个提取所有url参数的自定义钩子。

// use-query-string.js
import { useLocation } from 'react-router-dom';

export const useQueryString = () => {
  return new URLSearchParams(useLocation().search);
};

然后,您可以在组件中调用此函数,从而在URL中提供查询字符串列表。实际上,每次您调用它时,都会给您传递参数的列表。

const queryString = useQueryString();

最后,您可以提取所需的内容。只需通过传递您要查找的参数名称即可。

queryString.get('instanceName')

在您的情况下,可能是这样。

import { useQueryString } from 'use-query-string';
class App extends Component {
   
   const queryString = useQueryString();

   useEffect(() => {
     const value = queryString.get('instanceName');
     
     if (value === 'x') {
       // do this
     } else if (value === 'y') {
       // do that
     }
     
   }, [queryString])

    render() {
        return (
            <div id="layout">
              <Header />
              <Body />
              <Footer />
            </div>
          );
    }
}

但请记住,您的网址应为localhost:port?instanceName=value实际上,而不是/最后需要放置?我不确定它是否也适用/您可以进行测试和调整(如果没有)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Router传递参数。如何?

来自分类Dev

React Router无法传递参数

来自分类Dev

在React Router中传递其他参数

来自分类Dev

在React Router中传递可选参数

来自分类Dev

通过React Router从JSON传递数据

来自分类Dev

无法通过 React Router 传递道具

来自分类Dev

React-router:通过路由传递数据

来自分类Dev

避免加载通过React Router作为道具传递的数据

来自分类Dev

通过React Router Dom将用户传递给班级

来自分类Dev

React Router-通过Route中的功能传递位置道具

来自分类Dev

如何使用 react-router 通过`Link` 传递编码值?

来自分类Dev

通过EventEmitter传递参数

来自分类Dev

通过Func <>传递参数

来自分类Dev

通过PageFactory传递参数

来自分类Dev

通过轨道传递参数

来自分类Dev

通过变量传递参数

来自分类Dev

通过 URL 传递参数

来自分类Dev

通过react路由器定义传递额外的参数

来自分类Dev

如何通过React <select>组件传递多个参数?

来自分类Dev

通过Express路由将参数传递给React

来自分类Dev

React Router-使用组件参数并将prop传递给渲染的组件吗?

来自分类Dev

将路径参数传递给Switch中Route的render()函数-React Router

来自分类Dev

在react-router-dom链接中传递参数不能正常工作

来自分类Dev

如何使用React Router v6将参数传递给链接?

来自分类Dev

React Router将路由参数从父级传递到子级

来自分类Dev

React-Router v4 - 将参数传递给 withRouter

来自分类Dev

ReactJS React Router参数

来自分类Dev

传递参数 onClick,React

来自分类Dev

如何通过vue-router参数中的id查找对象,然后将其属性传递给vue中的模板