reactjs - NextJS 和 next-routes 没有像我期望的那样路由
问题描述
我创建了一个 routes.js 文件,如下所示:
const nextRoutes = require('next-routes');
const routes = module.exports = nextRoutes();
routes.add
('presenterallcurrent', '/presenter/:ccyear','speaker');
routes.add
('speakersessiondetail', '/presenter/:ccyear/:slugSpeaker','speakerdetail');
我期待当我浏览到:
/presenter/2018/douglas-crockford-1124
我将被带到我的 /pages/speakerdetail.js 文件,其中 query.ccyear 和 query.slugSpeaker 填充为 2018 年和 douglas-crockford-1124
我期待当我浏览到
/presenter/2018
我将被带到 /pages/speaker.js,query.ccyear 设置为 2018
第二种情况按我的预期工作(/presenter/2018)确实将我带到 /pages/speaker.js,但是(/presenter/2018/douglas-crockford-1124 给了我一个 404。
我不明白什么,为什么这不起作用?
在我的 /pages/speaker 和 /pages/speakerdetail 中:
static async getInitialProps({query}) {...}
解决方案
对于路线中的可选参数,添加尾随?
并调整speaker.js
以根据是否query.slugSpeaker
未定义来呈现年视图或详细视图。
routes.add
('speaker', '/presenter/:ccyear/:slugSpeaker?');
推荐阅读
- javascript - 不使用div,根据条件显示和隐藏html组件
- sas - SAS EG 中宏功能的自动参数和定义显示
- php - 警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,对象在 /customers/4/8/8/web-line.dk/httpd.www/TACO/forside.php 第 19 行给出
- ruby - Ruby:hexencode和hexdigest之间的区别
- ubuntu - NGINX安装错误
- javascript - 在里面使用 substr 或 slice 或 substring
- hyperledger-fabric - Composer-cli 似乎不知道参数的运行时
- php - PHP:同时处理多个请求
- python - Python 请求中的空 RequestsCookieJar
- pdf - Adobe Form 中所有行的值相同