React: Render list of items
How to render list of items in React
I can use the map() function to list items. I’ll use the code generated while doing counter app project.
state = {
      count: 0
      items: ['item1', 'item2', 'item3']
   };
  render() {
    
    return (
      <div>
        <span className={ this.getBadgeMethod() }>{this.formatCount()}</span>
        <button className="btn btn-secondary btn-sm">Increment</button>
        <ul>
            { this.state.items.map(item => <li>{ item }</li>)}
        </ul>
      </div>
    );
  }
In this code, we have an array which has three items named items
  { this.state.items.map(item => <li>{ item }</li>)}
Each item map it to a list item
Result:

Conditional rendering
state = {
      count: 0
      items: ['item1', 'item2', 'item3']
   };
   renderItems() {
       if(this.state.items.length === 0) return <p>There are no items!</p>;
       return <ul>{ this.state.items.map(item => <li>{ item }</li>)}</ul>;
   }
  render() {
    
    return (
      <div>
        { this.renderItems() }
      </div>
    );
  }
If the items array is empty, the paragraph tag will display.
I can write same funtion in another way.
state = {
      count: 0
      items: ['item1', 'item2', 'item3']
   };
   renderItems() {
       if(this.state.items.length === 0) return <p>There are no items!</p>;
       return <ul>{ this.state.items.map(item => <li>{ item }</li>)}</ul>;
   }
  render() {
    
    return (
      <div>
        { this.state.items.length === 0 && "Please create a new item!" }
        { this.renderItems() }
      </div>
    );
  }
if(this.state.items.length === 0) return <p>There are no items!</p>;
return <ul>{ this.state.items.map(item => <li>{ item }</li>)}</ul>;
Same with
{ this.state.items.length === 0 && "Please create a new item!" }
How?
true && false = false
true && “Hello” = ??
\
Answer is Hello
  
  
      
      
Leave a comment