排序后如何更新状态

kom*_*t17 1 javascript reactjs

我需要按薪水排序后的更新状态

state = {
    workers: [
        {name: 'Bob', surname: 'Meljanski', salary: 5140},
        {name: 'Michel', surname: 'Hensson', salary: 5420},
        {name: 'Jane', surname: 'Mitchel', salary: 2054}
}

startSort = () => {
    const arr = this.state.workers.slice();

    arr[2].name = 'Mike';
    var kk = [...arr].sort((a,b) => (a.salary>b.salary)*2-1);

    this.setState(kk);
    console.log(kk);
}
Run Code Online (Sandbox Code Playgroud)

结果。状态呈现而不进行排序。我该怎么做?对不起我的英语不好

Sag*_*b.g 7

setState 接受一个对象(新的状态对象)或一个函数(当react实际更新状态时将运行的更新程序,通常在下一个状态取决于上一个状态时使用,例如切换等)时,您将传递给它一个数组。

您可以尝试以下方法:

 this.setState({workers: kk});
Run Code Online (Sandbox Code Playgroud)