Untuff typeError:无法读取未定义的属性(读取' param')

发布于 2025-02-10 15:33:19 字数 2095 浏览 0 评论 0原文

它是React JS的主页组成部分,

    import React from 'react';
    import axios from 'axios';
    import { useState, useEffect } from 'react';
    import { useNavigate,useParams } from 'react-router-dom';
    import { Main } from '../components/Main';
    import { Controls } from '../components/Controls';
    import { ALL_COUNTRIES } from '../config';
    import { List } from '../components/List';
    import { Card } from '../components/Card';
    import { Details } from './Details';

    export const HomePage = () => {
     const [countries,setCountries] = useState([]);
     const  navigate = useNavigate();
     useEffect(() => {
      axios.get(ALL_COUNTRIES).then(({data})=>setCountries(data))
     },[]);
     return (
       <>
        <Controls/>
        <List>
        {
          countries.map((c)=>
          {
            const countryInfo={
              img:c.flags.png,
              name:c.name,
              info: [
                {
                  title:'Population',
                  description:c.population.toLocaleString(),
                },
                {
                  title:'Region',
                  description:c.region,
                },
                {
                  title:'Flag',
                  description:c.capital,
                },
              ],

            };
            return <Card key={c.name} onClick={(e)=>{navigate('/country/${c.name}')}} 
     {...countryInfo}/>
          })
        }
      </List>
      </>
   );
 };

其第二个组件详细信息

    export const Details = ({match}) => {
       return (
         <div>
           Details {match.param.name}  
         <div/>
       );
     };

[https://i.sstatic.net/kuyra.png] before

homepage本身看起来像这样 但是当我单击标志/卡时,它会按预期发送给我第二页,但给了我这个错误 [https://i.sstatic.net/jqehm.png] exter]

我也使用react-router-domv6 和此api https://restcountries.com/v2/all 这两个组件都在

It's HomePage component of react js

    import React from 'react';
    import axios from 'axios';
    import { useState, useEffect } from 'react';
    import { useNavigate,useParams } from 'react-router-dom';
    import { Main } from '../components/Main';
    import { Controls } from '../components/Controls';
    import { ALL_COUNTRIES } from '../config';
    import { List } from '../components/List';
    import { Card } from '../components/Card';
    import { Details } from './Details';

    export const HomePage = () => {
     const [countries,setCountries] = useState([]);
     const  navigate = useNavigate();
     useEffect(() => {
      axios.get(ALL_COUNTRIES).then(({data})=>setCountries(data))
     },[]);
     return (
       <>
        <Controls/>
        <List>
        {
          countries.map((c)=>
          {
            const countryInfo={
              img:c.flags.png,
              name:c.name,
              info: [
                {
                  title:'Population',
                  description:c.population.toLocaleString(),
                },
                {
                  title:'Region',
                  description:c.region,
                },
                {
                  title:'Flag',
                  description:c.capital,
                },
              ],

            };
            return <Card key={c.name} onClick={(e)=>{navigate('/country/${c.name}')}} 
     {...countryInfo}/>
          })
        }
      </List>
      </>
   );
 };

It's second components Details

    export const Details = ({match}) => {
       return (
         <div>
           Details {match.param.name}  
         <div/>
       );
     };

[https://i.sstatic.net/KUyrA.png][before]

HomePage itself looks like this
but when i click on flag/card it sends me on second page as expected but gives me this error
[https://i.sstatic.net/JqEHm.png][after]

also i'm using react-router-domV6
and this API https://restcountries.com/v2/all
also both Components are in

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文