React Router:将所有路由作为数组获取

新手上路,请多包涵

是否有一个现有的库可以将我的路由实例缩减为一组路径?

示例

     <Route path="/" component={App}>
      <Route path="author" component={Author}>
        <Route path="about" component={About}/>
      </Route>
      <Route path="users" component={Users} />
    </Route>

输出

['/', '/author', '/author/about', '/users']

我可以编写一个只有几行代码的 reduce 函数来解决这个问题,但我想知道是否有一个现有的库可以为我做这件事,并处理使用 react router 表示路由的不同方式。

原文由 Alan Souza 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

由于我没有找到任何东西,我最终为此创建了一个库……

https://github.com/alansouzati/react-router-to-array

 import React from 'react';
import { Route, IndexRoute } from 'react-router';
import reactRouterToArray from 'react-router-to-array';
// or var reactRouterToArray = require('react-router-to-array');

console.log(reactRouterToArray(
  <Route path="/" component={FakeComponent}>
    {/* just to test comments */}
    <IndexRoute component={FakeComponent} />
    <Route path="about" component={FakeComponent}>
      <Route path="home" component={FakeComponent} />
      <Route path="/home/:userId" component={FakeComponent} />
    </Route>
    <Route path="users" component={FakeComponent} />
    <Route path="*" component={FakeComponent} />
  </Route>)
); //outputs: ['/', '/about', '/about/home', '/users']

原文由 Alan Souza 发布,翻译遵循 CC BY-SA 3.0 许可协议

我不明白你为什么需要图书馆。您的 Routes 应该在道具中作为 Array 可用。

一个例子:

在此处输入图像描述

原文由 U r s u s 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题