解决React路由属性中获取undefined的问题
P粉696891871
P粉696891871 2023-08-14 14:56:23
[React讨论组]

我想把一些属性(loadinggetContacts)发送给ReactJS中的一个组件。我使用路由来获取每个路径,但是目标组件中的结果是undefined。这是怎么回事?

const App = () => {
  
  const [getContacts , setContacts] = useState([]);
  const [loading , setLoading] = useState(false);
  
  return(
    <div className='App'>
        <Navbar/>
       
        <Routes>
          <Route path='/' element = {<Navigate to ="/contacts"/>}/>

          <Route path='/contacts' loading= {loading} contacts= {getContacts} element= {<Contacts/>} />

          <Route path="/contacts/add" element = {<AddContact/>}/>

          <Route path = "/contacts/:contactId" element = {<ViewContact/>}/>

          <Route path = "/contacts/edit/:contactId" element = {<EditContact/>}/>

          <Route path="*" element={

              <div className='text-light py-5'>
                Not Found!
              </div>}

          />

        </Routes>

    </div>
);
export default App;

在Contact.jsx中,我有:

const Contacts = ({ contacts, loading }) => {

    return (
        <>
            <div>{contacts}</div>
            <div>{loading}</div>
        </>
    );
};

export default Contacts;

但是它们都是undefined。

P粉696891871
P粉696891871

全部回复(2)
P粉806834059

你正在将props传递给你的<Route/>组件。

<Route
  path="/contacts"
  loading={loading}
  contacts={getContacts}
  element={<Contacts />}
/>

但是你应该将它们传递给你的实际<Contacts/>组件

<Route
  path="/contacts"
  element={<Contacts loading={loading} contacts={getContacts} />}
/>
P粉852578075

尝试将状态变量直接放入子元素中:

<Route path='/contacts' element={<Contacts loading={loading} contacts={getContacts}/>} />
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号