想法是这样的,通过定义一个对象/数组来存导航部分的数据。
data = [
{title: "home", url: "home"},
{title: "about", url: "about"},
{title: "blog", url: "blog"},
]
列表的组件写的是没有问题的,下面是Router部分,简写了,获取URL是没有问题的。
data.map(function (item, index, arr) {
// 组件名首字母大写
var com_name = item.url.charAt(0).toUpperCase() + item.url.substr(1);
return (
<Route path={item.url} component={!!!!此处有问题!!!!!}></Route>
)
})
对于问题部分的代码:
// 想要的情况
<Route component={Home}></Route>
// 如果这么写
<Route component={com_name}></Route>
// 相当于
<Route component={"Home"}></Route>
// 这种情况不匹配
// 如果这么写
<Route component={eval(com_name)}></Route>
// DEBUG显示未定义
想说的是,究竟应该怎么写?
试一下这样<Route component={require("Home的路径")}></Route>
React Router有不用jsx的写法