【问题标题】:match.params.id works in react-router-dom version5 but not in version 6match.params.id 在 react-router-dom 版本 5 中有效,但在版本 6 中无效
【发布时间】:2021-11-07 14:16:29
【问题描述】:

在 react-router 版本 6 中获得此功能的正确方法是什么 当我 console.log 匹配时,它显示未定义,但在 v5 中可以正常工作

import React from 'react'

const NotePage = ({ match }) => {

    let noteId = match.params.id


    console.log(noteId)
    return (
        <div>
            <h1>detail Note {noteId} </h1>
        </div>
    )
}

export default NotePage

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    您需要在组件中使用useParams 挂钩,如下所示。我假设你的路径是/:id

    import React from 'react'
    import { useParams } from 'react-router-dom'
    
    const NotePage = () => {
    
        const { id: noteId } = useParams()
    
        return (
            <div>
                <h1>detail Note {noteId} </h1>
            </div>
        )
    }
    
    export default NotePage
    

    【讨论】:

    • 你是从哪里知道这个的,任何资源都可以了解更多信息
    • reactrouter.com/docs/en/v6/api 他们有很好的文档,包括示例和 v5 的迁移指南。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 2021-07-19
    • 2019-02-09
    相关资源
    最近更新 更多