I want to loop an array and create list items out of it. In the console,it is showing mistake is thrown, because my array has no keys but only values. So What is the right operation to read out an array?
*// this.props.items = ["cars","streets","houses"];*Wrong. You can't update props
var TodoList = React.createClass({
render: function() {
var createItem = function(item) {
return <li>{item}</li>;
};
return <ul>{this.props.items.map(createItem)}</ul>;
}
});
Try this way:
this.filterOptions =['Monthly','Weekly','Daily'];
<ul>
{ this.filterOptions.map((filterItem) => {
return (
<li key={filterItem}>
<span>{filterItem}</span>
</li>
);
})
}
</ul>
EDIT 1: If there is duplicate value in array,
<ul>
{ this.filterOptions.map((filterItem,index) => {
return (
<li key={index}>//key must be uniq
<span>{filterItem}</span>
</li>
);
})
}
</ul>
Just to clarify because i see u use:
var TodoList = React.createClass({
instead of
class TodoList extends React.Component {
and the question about the closing brackets in the comments above: "Is there a missing closing brackets ((filterItem,index)""
i assume you are not using the es6 syntax, so i wanted to point out that
{ this.filterOptions.map(function(filterItem, index) {
return (
<li key={index}>
<span>{filterItem}</span>
</li>
)
}, this)
}
equals
{ this.filterOptions.map((filterItem,index) => {
return (
<li key={index}>
<span>{filterItem}</span>
</li>
);
})
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With