пусть я всегда равен неопределенному, но переменная i определена в цикле for - PullRequest
0 голосов
/ 28 апреля 2020

Я использую vue, vuedraggable и vuetify в моем проекте.

Я не могу использовать let, чтобы определить мой индекс для моего l oop, он всегда не определен. Этот метод вызывается событием из draggable. Однако использование var вместо let работает. Почему let всегда неопределена?

Даже когда я непосредственно назначаю переменную i 1, она все еще не определена. Например, для (пусть i = 1; i <2; i ++) все еще приводит к тому, что я равен неопределенному внутри для l oop. </p>

. Здесь я вижу проблему

* 1008. *enter image description here
updateOrderNumbers(draggedContext) {
    if (draggedContext.index < draggedContext.futureIndex) {  
      for (let i = draggedContext.index; i < draggedContext.futureIndex; i++) {
        let swapIndex = this.orderTableData[i].sortOrder;
        this.orderTableData[i].sortOrder = this.orderTableData[i+1].sortOrder ;
        this.orderTableData[i+1].sortOrder = swapIndex;
      }
    }

    if (draggedContext.index > draggedContext.futureIndex) {
      for (let i = draggedContext.index; i > draggedContext.futureIndex; i--) {
        let swapIndex = this.orderTableData[i].sortOrder;
        this.orderTableData[i].sortOrder = this.orderTableData[i+1].sortOrder;
        this.orderTableData[i+1].sortOrder = swapIndex;
      }
    }
 }

Этот метод вызывается здесь

 onMoveCallback(evt){
    this.updateOrderNumbers(evt.draggedContext)
    this.checkForChanges()
  }

А вот элемент, который инициирует вызов.

<draggable v-model="orderTableData" :move="onMoveCallback" tag="tbody">

1 Ответ

0 голосов
/ 28 апреля 2020

Похоже, что FireFox и Chrome не могут определить значение переменной, инициализированной с помощью let inside a для l oop, в этом случае, но они могут определить ее значение, если вы инициализируете переменную с варкой внутри для л oop.

...