【问题标题】:Using array sort to rearrange elements in vue not working on mobile?使用数组排序重新排列 vue 中的元素在移动设备上不起作用?
【发布时间】:2017-09-02 20:55:20
【问题描述】:

我在输出组件列表然后重新排序时遇到问题。 这适用于我的桌面 chrome,但不适用于移动 safari 或 chrome。 有人遇到过这个吗?

有关更多信息,我有一个管理实体数组的 vuex 模块,我提交此突变以重新排序它们:

state.entities.sort((a, b) => parseInt(a.initiative) < parseInt(b.initiative))

然后在一个组件中,我根据这个实体数组输出标记:

<entity v-if="showEntityList" v-for="entity in entities" :key="entity.id" :entity="entity"/>

【问题讨论】:

    标签: arrays vue.js cross-browser vuejs2 vuex


    【解决方案1】:

    想通了!

    我不得不改变这个:

    state.entities.sort((a, b) => parseInt(a.initiative) < parseInt(b.initiative))
    

    到这里:

    state.entities.sort((a, b) => {
        if(parseInt(a.initiative) < parseInt(b.initiative)) {
            return 1
        }
    
        if(parseInt(a.initiative) > parseInt(b.initiative)) {
            return -1
        }
    
        return 0
    })
    

    移动浏览器对您确定其外观的顺序更为严格。

    【讨论】:

    • 谢谢,我在 Chrome 中遇到了同样的问题(尽管它在 Firefox 中可以正常工作)。
    • 同样的问题,在 Firefox 中运行良好,但在 Chrome 中运行良好。我想知道,会是什么原因? ://
    • Chrome 和 Firefox 的排序方法略有不同。您必须在实现中更加具体,才能使其在两者上都发挥同样的作用。
    • 简化为state.entities.sort((a, b) =&gt; parseInt(a.initiative) - parseInt(b.initiative))。 (注意minus 符号)
    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多