NextJS和next-routes不像我期望的那样进行路由

时间:2018-09-20 18:17:24

标签: reactjs next.js

我创建了一个如下的route.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}) {...}

1 个答案:

答案 0 :(得分:0)

对于路线中的可选参数,请添加尾随?并调整speaker.js以根据query.slugSpeaker是否未定义来呈现年视图或详细视图。

routes.add
    ('speaker', '/presenter/:ccyear/:slugSpeaker?');