React basics: Looping a list

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
Search for a command to run...

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
No comments yet. Be the first to comment.
Most of you know me for my consistency, a golden arrow in my blog series. I've written 1000 articles in 1008 days! Almost an article a day, and my honeymoon was the only holiday I ever took. I'm super proud of this achievement; it has been a fantasti...

It's not the first time I'll be talking about community. I think it's an essential aspect of any successful tool. This shows in my previous explorations of Astro, Medusa, and now Vendure as well. All these products thrive in a super open, welcoming, ...

The cool part about Vendure is how easy it is to set up and how abstract each layer is. Basically, we get the following elements: External database Server Worker Admin UI Frontend While this is amazing, it also brings a bit of complexity when it co...

The previous article looked at customizing Vendure on a data and process level. In this article, we'll look at customizing emails, as they are often a big part of a webshop system. We'll be looking at two different layers of customization for customi...

Even though Vendure is a pretty significant project out of the box, in some cases, we might want to go in and modify some elements to work to our specific use case. In this article, I'll take a high-level look at some elements we can customize within...

In today's article for React basics, we'll enhance our first ever React components with a list.
Yesterday we made some static book components like so:
<Book title='Laravel collections' />
<Book title='Ruby for beginners' />
<Book title='CSS is awesome' />
However, that quickly becomes a struggle to maintain. So let's have a look at how we could dynamically load these books from a list.
Open up your App.js and add a list like so above your app declaration.
const books = [
{
id: 1,
title: 'Laravel collections',
},
{
id: 2,
title: 'Ruby for beginners',
},
{
id: 3,
title: 'CSS is awesome',
},
];
function App() {}
To render these elements in our React app, we can leverage the map function.
<Bookshelf>
{books.map((book) => (
<Book title={book.title} />
))}
</Bookshelf>
And this little piece of code will do the same thing as we had before.
However, I made one big mistake in the example above. When we render list items in React as we do above, we should always set a key property. This key will help React identify which items change or should be removed.
To add the key, we can use the following code.
<Book title={book.title} key={book.id} />
However, sometimes we just do not have a key, so what do we do then?
Well, no worries, React comes with a built-in index we can use as the key.
const numbers = [1, 2, 3];
{numbers.map((number, index) => (
<span key={index}>Number: {number}</span>
))}
As you can see, the index is available on the map function to use that as the unique key for each element.
As usual, you can find this code on GitHub. I hope you enjoyed this article about loops in React.
Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter