react 读路由 组件配置

react 读路由 组件配置
在这里插入图片描述


import routes from '@/router/routes';
// import routes from 'config/routes';

console.log("routes");
console.log(routes);



const getComponents = (routes: any): any => {
  let components: any[] = []

  // console.log("routes");
  // console.log(routes);
  const recSearchComponents = (routes: any) => {

    for (let route of routes) {
      // console.log(a instanceof Array);//true
      // 
      // console.log(route);

      if (route.component) {
        components.push(route.component)
      }
      // if(r.routers){
      //   recR(r.routers)
      // }
      if (route.routes) {
        recSearchComponents(route.routes)
      }
      // routes
      // if(r instanceof Array ){
      //   recR(r)
      // }
    }
  }
  recSearchComponents(routes)
  return components
}

let components = getComponents(routes)
console.log("components");
console.log(components);
const makeProFormSelectOptions = (components: Array<any>) => {
  // for(let o of components){

  // }
  let set = new Set(components)
  //  let arr= 
  // ts  set to arr
  // https://stackoverflow.com/questions/20069828/how-to-convert-set-to-array
  // const array = [...mySet];
  // https://www.csdn.net/tags/MtTaEgysMTEyOTkzLWJsb2cO0O0O.html
  const array = [...set];
  // let  res= components.map(o=>{
  let res = array.map(o => {
    return {
      label: o,
      value: o
    }

  })
  return res
}
let componentsOptio
ns = makeProFormSelectOptions(components)

  <ProFormSelect
        name="component"
        label={intl.formatMessage({
          id: 'system.Menu.component',
          defaultMessage: '组件路径',
        })}
        placeholder="请输入组件路径"
        request={async () => {
          console.log("componentsOptions");
          console.log(componentsOptions);
          return componentsOptions
        }
        }
        rules={[
          {
            required: false,
            message: <FormattedMessage id="请输入组件路径!" defaultMessage="请输入组件路径!" />,
          },
        ]}
      />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值