Next.js中面临的动态路由问题

人气:1,121 发布:2022-10-16 标签: html javascript reactjs next.js jsx

问题描述

所以我在Next js中有这个动态页面

import { useRouter } from 'next/router'
import { WEB_RELATED, PC_EXES } from '../../components/Data';

export default function title() {

    const router = useRouter();
    const { index } = router.query;
    
    console.log(index.length)
    
    return (
        <div>

        </div>
    )
}

在dada.long语句上,我得到错误-&>数据未定义, 我试图直接对索引执行同样的操作,但遇到了同样的问题。 我想从index参数中获取两个字符串,我该怎么做?

推荐答案

您需要先测试是否定义了索引。以下是如何处理路由器查询的示例:

ps:图片下方提供的代码

PSPS:查看文档https://nextjs.org/docs/routing/dynamic-routes


// pages/testStackOverflow/[index].js

import React, {useEffect} from 'react';
import {useRouter} from 'next/router'

const Title = () => {

    const router = useRouter();

    const {index} = router.query

    // Don't use console.log directly below index because his value can be changed

    useEffect(() => {

        console.log('value', index, 'length : ', index?.length);

       // You can use if statement
      /* if(index) {
          doSomethingHere
       }*/

    // Triggering router change with useEffect
    }, [index])

    return (
        <div>
            {index}
        </div>
    )
};

export default Title;

希望我能帮助您。

586