I have a NextJS
catch all route which pulls in
import { useRouter} from 'next/router'
And retrieves all the parameters:
const { params = [] } = router.query
If I log the params
value I see all the URL path elements in the console.
I would like to repeat out all the params
values in an unordered list:
return <ul> {params.map((param) => { <li>{param}</li> })} </ul>
But this outputs nothing. There are no elements displayed.
How can I get this to display the list?
Advertisement
Answer
With curly braces you will have to write the return keyword too.
return <ul> {params.map((param) => { return (<li>{param}</li>); })} </ul>
This is how arrow functions work in JS.
With the current code, there is no return statement basically. So by default undefined
is returned and nothing is rendered :
return <ul> {params.map((param) => { <li>{param}</li> //No return statement })} </ul>
For short : You can remove the curly braces.
return <ul> {params.map((param) => <li>{param}</li>)} </ul>