我们可以使用jsx字段生成对象吗?

我喜欢使用
https://github.com/Paratron/hookrouter中的useRoutes()钩子
但我的页面太多,并且有很多重复的代码,
我尝试生成一些区域,请帮助我编写genRoutes()函数

示例代码:

const pages = [{ name: 'aaa' },{ name: 'bbb' },{ name:'ccc' }]
const routes = genRoutes(pages)
console.log(routes)

> {
>   '/aaa': () => <AaaPage />,>   '/bbb': () => <BbbPage />,>   '/ccc': () => <CccPage />
> }
nange1988 回答:我们可以使用jsx字段生成对象吗?

您正在使用的库没有提供值,除了将路由用作挂钩。此类情况下不应该真正使用钩子。以下方法不需要库(当然,除了自身反应外),并且具有很好的声明性语法。

import { Route,Switch } from 'react-router-dom';
...

const routes = [
    {
        path: '/',component: HomeComponent
    },{
        path: '/b',component: ComponentB
    },{
        path: '/c',component: ComponentC
    }
];

return (
    <Switch>
        {routes.map(({ path,component }) => (
            <Route path={path} component={component} exact />
        ))}
    </Switch>
);

可以使用更多选项(例如exact)扩展这种配置样式方法。

本文链接:https://www.f2er.com/3111254.html

大家都在问