Whenever I am giving array of paths to Route
it gives following error :
meta.relativePath.startsWith is not a function
Code snippet:
<Route
path={["/search", "/images", "/news", "/videos"]}
element={<Results />}
></Route>
The tutorial which I was following was using older version of React router and thus they were also using Switch
and that's why it was working fine in the tutorial.
Since in v6 Switch
is no longer available and I also tried to go through docs regarding how to pass array of path, but didn't find anything which can solve the error
CodePudding user response:
react-router
v6 doesn't support passing an array of path
in Route
.
If you want to keep the same behavior, you need to separate it into multiple Route
like this
<Route
path="/search"
element={<Results />}
/>
<Route
path="/images"
element={<Results />}
/>
<Route
path="/news"
element={<Results />}
/>
<Route
path="/videos"
element={<Results />}
/>
or a shorter way is to use .map
{
["/search", "/images", "/news", "/videos"].map((p) => (
<Route key={p} path={p} element={<Results />} />
));
}