javascript - 将历史记录属性传递给包装在父组件中的动态创建的路由

标签 javascript reactjs

我如何将历史记录传递给动态创建的路线 用另一个组件包裹

请参阅下面的代码片段

import React, {Component} from 'react';
import {BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import Loader from './Loader';
import RootComponent from './RootComponent';
import About from './About';
import Contact from './Contact';

class App extends Component{
  state = {
    loaderStatus: false,
    dynamicRoutes: null
  }

  componentWillMount(){
    this.setState({
      loaderStatus: true
    })
  }

  componentDidMount(){
    let routes = () => {
      let accessedRoutes = [{path:'about', component: () => <About />},{path:'contact', component: () => <Contact />}].map(o => {
        return (
          <Route
            exact={true}
            path={o.path}
            component={o.component}
          >
          </Route>
        )
      })
      return accessedRoutes
    }

    setTimeout(() => {
      let output = this.createRoutes(routes)
      this.setState({
        dynamicRoutes: output,
        loaderStatus: false
      })
    }, 4000)
  }

  createRoutes = (routes) => {
    return (
      <RootComponent>
        <Switch>
          {routes}
        </Switch>
      </RootComponent>
    )
  }


  render(){
    return(
    <Fragment>
    {
      this.state.loaderStatus ?
      <Loader />
      :
      <Router>
        {this.state.dynamicRoutes}
      </Router>
    }
    </Fragment>
    )
  }
}

export default App;

//About.js

import React from 'react';

const about = (props) => {
  console.log('props in about', props) // giving empty object
  return (
    <div>About</div>
  )
}

export default about

最佳答案

将accessedRoutes的结构更改为[{path:'about', component:About}]。 现在您可以访问路由器 Prop

关于javascript - 将历史记录属性传递给包装在父组件中的动态创建的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902709/

相关文章:

javascript - 逗号分隔符多维数组

javascript - 将文本(HTML 标签之外)更改为链接

javascript - 使用 JavaScript 启用 href

javascript - 如果网络离线,使用 if 语句跳过获取

Javascript小数比较

javascript - ReactJS 二维数组

javascript - 在第一次渲染期间处理组件中的未定义/空属性

reactjs - shadcn 输入+表格+Zod "A component is changing an uncontrolled input to be controlled"

javascript - React.js - 导航路线时控制台中出现错误

javascript - jQuery 可调整大小 : don't allow contained div to be out