小编YVH*_*YVH的帖子

在React.js中如何在数组中按字母顺序对对象进行排序

我正在使用React.js和firebase制作一个应用程序,用户可以在其中输入名称和该人的地址。

Firebase中的对象如下所示:

L1NSTjqA10Qc85d7Kcc - name: John Doe, - address: 1 Maple Ave

我已经打印了名称,并成功地将地址打印到DOM上,但是我想按名称的字母顺序对其进行排序。

因此,我的列表如下所示:

Jane Doe - 34 Green Street
John Doe - 1 Maple Ave
Riley Smith - 3 Happy Street
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的JSX,用于在父组件上映射对象数组时:

<ul>
  {this.state.contacts.map((res)=> <List data={res}/>)}
</ul>
Run Code Online (Sandbox Code Playgroud)

以防万一,这是我的componentDidMount:

componentDidMount() {
  const dbRef = firebase.database().ref();

  dbRef.on("value", (firebaseData) => {
    const itemsArray = [];
    const itemsData = firebaseData.val();
    for (let itemKey in itemsData) {
      itemsArray.push(itemsData[itemKey])
    }
    this.setState({ contacts: itemsArray})
  })
}
Run Code Online (Sandbox Code Playgroud)

我试图从另一个堆栈溢出论坛中执行以下操作,但是它没有用:

const myData = [].concat(this.state.contacts)
  .sort((a,b)=> a.name > b.name
  .map((res)=> …
Run Code Online (Sandbox Code Playgroud)

javascript firebase reactjs firebase-realtime-database

3
推荐指数
1
解决办法
9874
查看次数