In this segment, you'll learn how you can dynamically render content inside components while using JavaScript's map() method.
The map() in the JavaScript method creates a new array after calling the given function on each array element in order. Note that it does not change the original array.
In the next video, you'll learn how to dynamically show the two subscribers - Shilpa and Srishti in the Phone Directory application.
This looks exactly like we had seen in the screenshot. But wait, is this the right way to achieve this? Let’s take a look in the next video.
JavaScript’s map() method can be used to iterate over an array and inject data into the React components or elements dynamically. You don’t need to hard-code the data inside each component. This is one of the major reasons why React refers to its components as ‘reusable’ entities. Also, this is yet another application where curly braces are used in order to write some JavaScript code alongside JSX. You will see how to use this method in the next video.
Notes:
1. The entire map() method is written inside curly braces since it is JavaScript code that needs to be evaluated. map() is a JavaScript function and returns an array after applying the given function to each element of the array.
{ arrayNameToIterateOver.map( //code here ) }
2. In React, you need to give a unique key to each element being rendered into the DOM. In case you fail to do this, you will get an warning saying, “Each child in an array or iterator should have unique “key” prop”.
To overcome this, you need to first assign each array element with a unique value for a property. Let’s say the property is id and the unique values are 101 and 102, corresponding to the individual array elements.
let demoArray = [ { id: 101, // unique prop1: "SomeValForProp1", prop2: "SomeValForProp2" }, { id: 102, // unique prop1: "SomeOtherValForProp1", prop2: "SomeOtherValForProp2" } ];
Secondly, you need to assign this property (id here) to the property key of the outermost element inside the map method.
{ demoArray.map(arrayElement => { return <div key={arrayElement.id}> </div> }) }
The concept of unique keys helps in distinguishing between different elements that are rendered into the DOM in React.
In the Phone Directory application, you have used the map method over an array of subscribers to call the function, which renders the subscribers into the DOM after iterating over each subscriber in the array.
You can commit your code here with “Rendered Subscribers Dynamically” as the commit message and view the diff here.
After adding the ‘Delete’ button alongside each subscriber, the home page should look like this:
That was a cakewalk, wasn’t it? In case you want to match your solution code and see the diff, click on this link.
You can commit your code with “Added ‘Delete’ button” as the commit message.