关灯
开启左侧

react 中,将字符串形式的组件名,转成变量进行使用

[复制链接]
doubleyong 发表于 2019-5-13 15:46:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
如上代码:
  1. <Route key={'r1'+index} path={value.url} component={ value.component}
复制代码

value.component是组件的名称,字符串类型,如何将字符串类型,转成相对应的变量


1. 考虑react中是否可以使用Eval方法(未实践)
2. 不用eval实现
思路:
比如服务器返回组件String ‘< ComponentName />’,
用正则取到ComponentName, 把React组件存到一个 Components对象
选择组件 Components[ComponentName],放到render渲染 。

代码如下:
  1. var components = {"About":About,"Product":Product,"Port":Port,"Fruits":Fruits,"Vegetables":Vegetables,"PersonCenter":PersonCenter};
  2. var menuRouter = menuOne.map(function (value, index) {
  3.             var menuTwo = menuArrTemp.filter((item)=>{return item.parentId === value.menuId});
  4.              return (<Route key={'r1'+index} path={value.url} component={ components[value.component]}></Route>
  5.              );
  6. });
复制代码

参考:http://react-china.org/t/react-eval/22748
 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )