javascript - 排序后如何更新状态

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

按结果。状态呈现而不排序。我怎样才能做正确?对不起我的英语

最佳答案

setState接受一个对象(新状态对象)或一个函数(一个更新程序,当 react 实际更新状态时将运行,主要用于下一个状态依赖于前一个状态,如切换等),你传递给它一个数组。

你可以试试这个:

 this.setState({workers: kk});

关于javascript - 排序后如何更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089176/

相关文章:

java - 用 Java 或 Javascript 播放 BIOS 声音(通过 PC 扬声器)

javascript - 如何修复我的 React 上下文以呈现 useEffect 并重新加载表数据

reactjs - Redux 与普通 React

javascript - 如何保存范围对象(来自 getSelection),以便我可以在不同的页面加载上重现它?

javascript - 如何从 React 中 render 方法之外的函数渲染组件?

javascript - Reactjs - 我是否有义务将我的嵌套组件传递到 div 框中以触发函数?

reactjs - React 将登录链接更改为登录后注销

javascript - 为什么 .active() 不能使用 typeahead

javascript - 如何将 Kendo UI PullParameters 功能与 Pull To Refresh 一起使用?

javascript - 函数返回 promise ,而不是值