javascript - React Router 已声明但不起作用

标签 javascript reactjs react-router react-router-dom

你好,我希望它渲染 InstrumentPage#/ 时没有 Prop 是访问但是当 #/ipb是访问通行证 ipb作为 Prop 实体。但它不起作用。

  render() {
    return (<React.Fragment>
      <HashRouter>
        <Switch>
          <Route path='/' render={(props) => <InstrumentPage {...props} />}/>
          {Object.keys(AppConfig).forEach((property) =>
            <Route path={property} render={(props) => <InstrumentPage {...props} entity={property} />} />)
          }
        </Switch>
      </HashRouter>
    </React.Fragment>);
  }

应用程序配置

const AppConfig = {
  pb: {
    header: 'PBHeader',
    body: 'PBBody',
  },
  ipb: {
    header: 'IPBHeader',
    body: 'IPBBody',
  },
};    
export default AppConfig;

最佳答案

您需要使用map并返回RouteforEach除了undefined之外不会返回任何内容。

<Switch>
    <Route exact path='/' render={(props) => <InstrumentPage {...props} />}/>
    {Object.keys(AppConfig).map((property) =>
      <Route 
        path={`/${property}`} 
        render={ (props) => <InstrumentPage {...props} entity={property} /> } 
      />
     )
    }
</Switch>

注意:当您编写 path={property} 时,表示 path={ipb}path={pb} 这是不正确的路径。正确的路径应该是 path="/ipb" (注意斜线),为此你需要执行 /${property} [contains back-tick] (使用 Template string )。

还为您的第一个Route添加exact属性,否则它将匹配所有Routes

关于javascript - React Router 已声明但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57635147/

相关文章:

reactjs - 如果react js axios中没有可用数据,如何显示 "no data available"消息?

javascript - 从 Javascript 正确导航到 React 路由

javascript - react 子嵌套路由

javascript - 我怎么知道一个复选框是否被实际点击了?

javascript - getDownloadURL 无法正常工作 - Firebase 存储 (Web)

node.js - yarn -如何将package.json中的每个依赖关系更新为最新版本?

reactjs - React Router - 渲染组件的问题。白屏

来自元素的 JavaScript 子字符串

javascript - 连接和断开属性

reactjs - 如何配置atom-beautify包以使用babel/jsx javascript文件进行格式化?