Reputation: 199
How can I make sure my array is not empty when trying to print it out like this? ClientCodeRegional is my array and sometimes it could be empty.
{
this.state.user.ClientCodeRegional[0]?
<ul>{this.state.user.ClientCodeRegional.map((number) => <li key={number.toString()}>{number}</li>) }</ul>
:null
}
Upvotes: 0
Views: 70
Reputation: 170
Check the length of the array ClientCodeRegional and if it is > 0 then show your list with the loop on the ClientCodeRegional.
{
this.state.user.ClientCodeRegional.length>0 &&
<ul>{this.state.user.ClientCodeRegional.map((number) =>
<li key={number.toString()}>{number}</li>) }</ul>
}
Upvotes: 0
Reputation: 2032
You should use destructuring assignment for shorter code
const { ClientCodeRegional } = this.state.user
{
ClientCodeRegional.length &&
<ul>
{ ClientCodeRegional.map( number => <li key={number}>{number}</li>) }
</ul>
}
I've just wondered why do you need to convert number.toString()
for key
attribute. I think it converts automatically.
Upvotes: 0
Reputation: 8213
You can check for the array length.
{
this.state.user.ClientCodeRegional.lenght &&
<ul>{this.state.user.ClientCodeRegional.map((number) =>
<li key={number.toString()}>{number}</li>) }
</ul>
}
Upvotes: 0
Reputation: 313
You can use
{
this.state.user.ClientCodeRegional.length &&
<ul>
{this.state.user.ClientCodeRegional.map((number) =>
<li key={number.toString()}>{number}</li>) }
</ul>
}
Upvotes: 2