並べ替える前と並べ替え後の配列の変更を追跡する必要があります。私は2つの変数originalOrder
とrulesetOrder
を持っています。私のコンポーネントはrulesetOrder
にバインドされているので、アイテムを移動すると、その配列がそのインデックスを配列に反映するように更新されます。私が再注文するたびに、イベントが発生し、originalOrder
とrulesetOrder
を比較します。すべての比較の終わりに、私はoriginalOrder
を更新された新しいrulesetOrder
と等しく設定しました。配列の状態を追跡する
初めて注文したとき、それはいいです、originalOrder
は新しいもの(rulesetOrder
)とは異なります。 2回目の再注文を行った場合、originalOrder
は自動的にrulesetOrder
で変更されたように見えるため、2つの配列に違いはありません。
ここに私のコードがありますので、誰でも私が間違っていることを助けてください。originalOrder
は、イベントが再び発生したときの配列の前の状態と常に同じですか?私はrulesetOrder
に等しい元の順序を設定すると1が変化したときに、他の1が同様になるように、
OnReorder()
{
console.log("Start: " + JSON.stringify(this.originalOrder));
console.log("New Order:" + JSON.stringify(this.rulesetOrder));
this.originalOrder = this.rulesetOrder;
}
、それは、それらを一緒に結合していますか?これを回避する方法はありますか?
初回:
スタート:[ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"、 "1caf3416-9853-49eb-8bda-c3b9017a204a"、「9e5fe94d-6c0e-4b85-85f4-38a074badfeb "]
ニュー・オーダー:[" 1caf3416-9853-49eb-8bda-c3b9017a204a」、 "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"、 "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
2回目:
スタート:[ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"、 "1caf3416-9853-49eb-8bda-c3b9017a204a"、 "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
ニューオーダー:[ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"、 "1caf3416-9853-49eb-8bda-c3b9017a204a"、 "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
'this.originalOrder = this.rulesetOrder;を設定すると、' originalOrder'は 'rulesetOrder'とまったく同じ配列を指しています。 'rulesetOrder'のコピーを作成し、' originalOrder'をそれに設定してください。 –
ハ...そういうふうに感じる。 Javascriptは配列を参照渡しするので、typescriptはjavascriptにトランケートされているので、その後も行います。 – Bohms27