在ReactJS上使用Lodash对映射列表进行排序

Emo*_*Emo 3 javascript arrays sorting lodash reactjs

我有一个数组:

people = [
  {
    name: "Kyle",
    _id: "2"
  },
  {
    name: Susan,
    _id: "1"
  }
]
Run Code Online (Sandbox Code Playgroud)

我有一个映射列表:

return (
  <ul>
    {people.map( (person) => {
      return (
        <li>
          <span>{person.name}</span>
          <span>{person.id}</span>
        </li>
       )
    })}
  </ul>
)
Run Code Online (Sandbox Code Playgroud)

这一切都运作良好,但我如何根据"名称"对它们进行排序?我试图使用[_.sortBy][1]但无法弄清楚它如何适合React和map函数的上下文.使用lodash或下划线的_.sortBy将不胜感激.

谢谢!

Ale*_* T. 7

_.sortBy你可以通过将用于排序您的收藏领域的名称,了解更多有关_.sortBy

var Component = React.createClass({
    getInitialState() {
        return {
            people: _.sortBy([
                { name: "Kyle", _id: 2}, 
                { name: "Susan", _id: 1}
            ], '_id')
        }
    },

    sortBy(field) {
        this.setState({ 
            people: _.sortBy(this.state.people, field) 
        });
    },

    render: function() {
        var peopleList = this.state.people.map( (person, index) => {
            return (<li key={index}>
                <span>{person.name}</span>
                <span>{person.id}</span>
            </li>);        
        })

        return <div>
            <a onClick={this.sortBy.bind(this, '_id')}>Sort By Id</a> | 
            <a onClick={this.sortBy.bind(this, 'name')}>Sort By Name</a>
            <ul>{peopleList}</ul>
        </div>;
    }
});
Run Code Online (Sandbox Code Playgroud)

Example