محمود سعداوي2 نشر 19 أغسطس 2023 أرسل تقرير نشر 19 أغسطس 2023 السلام عليكم. function App() { return ( <> <Navbar/> <Routes> <Route path="/" element={ <Landing/> }/> <section className="container"> <Routes> <Route path="/login" element={ <Login/> }/> <Route path="/register" element={ <Register/> }/> </Routes> </section> </Routes> </> ); } كيف يمكن معالجة الخطأ السالف ذكره. شكرا. 1 اقتباس
0 Mustafa Suleiman نشر 19 أغسطس 2023 أرسل تقرير نشر 19 أغسطس 2023 المشكلة بسبب وجود عنصر <section> كفرع مباشر لعنصر <Routes> داخل الكود، وفي React Router v6، يجب أن تحتوي عناصر <Routes> على عناصر <Route> فقط أو <React.Fragment> كعناصر داخلية أو كأطفال childrens. لذلك عليك باستخدام <Route> للـ <section> أيضًا بدلاً من وضع <Routes> داخل <section>. import { Route, Routes } from 'react-router-dom'; function App() { return ( <> <Navbar /> <Routes> <Route path="/" element={<Landing />} /> <Route path="/login" element={<Login />} /> <Route path="/register" element={<Register />} /> </Routes> </> ); } وبالتالي ولم يعد هناك <Routes> داخل <section> وتم وضع جميع الـ <Route> مباشرة داخل <Routes> الرئيسي، مما سيحل مشكلة الخطأ الذي كنت تواجهه. https://reactrouter.com/en/6.15.0/upgrading/v5 1 اقتباس
0 عبدالباسط ابراهيم نشر 19 أغسطس 2023 أرسل تقرير نشر 19 أغسطس 2023 بالإضافة أيضاً للحل السابق إذا كنت تريد استخدام ال section فيمكنك استخدام ما يسمى بال Layout Routes كما في التوثيق مثال على ذلك import { Outlet } from 'react-router-dom'; const SectionLayout = () => ( <section className='container'> <Outlet /> // <-- routes render content here </section> ); export default SectionLayout; ثم نقوم باستدعاء ال SectionLayout كما يلي import SectionLayout from '../path/to/SectionLayout'; ... <Routes> <Route path='/' element={<Landing />} /> <Route element={<SectionLayout />}> <Route path='/register' element={<Register />} /> <Route path='/login' element={<Login />} /> </Route> </Routes> 1 اقتباس
السؤال
محمود سعداوي2
السلام عليكم.
كيف يمكن معالجة الخطأ السالف ذكره.
شكرا.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.