这个变量来自这个反应脚本

时间:2015-06-02 12:27:24

标签: javascript reactjs

我开始考虑反应,我在这里看到了一个很好的例子https://scotch.io/tutorials/learning-react-getting-started-and-concepts 但是我不确定'item'来自哪里,它似乎没有在任何地方声明。我在下面的代码中突出显示了项目。

/** @jsx React.DOM */

var List = React.createClass({
  render: function(){
    return (
      <ul>
      {
        this.props.items.map(function(**item**) {
          return <li key=**{item}>{item}**</li>
        })
       }
      </ul>
    )  
  }
});

var FilteredList = React.createClass({
  filterList: function(event){
    var updatedList = this.state.initialItems;
    updatedList = updatedList.filter(function(**item**){
      return **item**.toLowerCase().search(event.target.value.toLowerCase()) !== -1;
    });
    this.setState({items: updatedList});
  },
  getInitialState: function(){
     return {
       initialItems: [
         "Apples",
         "Broccoli",
         "Chicken",
         "Duck",
         "Eggs",
         "Fish",
         "Granola",
         "Hash Browns"
       ],
       items: []
     }
  },
  componentWillMount: function(){
    this.setState({items: this.state.initialItems})
  },
  render: function(){
    return (
      <div className="filter-list">
        <input type="text" placeholder="Search" onChange={this.filterList}/>
      <List items={this.state.items}/>
      </div>
    );
  }
});

React.renderComponent(<FilteredList/>, document.getElementById('mount-point'));

1 个答案:

答案 0 :(得分:2)

updatedList是一个数组。

Array.filter将函数作为将在变量中传递的参数。他们使用item作为变量名称。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter