简体   繁体   中英

How to read information of an array in reactjs?

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>
    );
  })
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM