2015-11-26 5 views
13

Ich lese an example of the React-dnd project:

moveCard(dragIndex, hoverIndex) { 
    const { cards } = this.state; 
    const dragCard = cards[dragIndex]; 

    this.setState(update(this.state, { 
     cards: { 
     $splice: [ 
      [dragIndex, 1], 
      [hoverIndex, 0, dragCard] 
     ] 
     } 
    }));} 

Ist das $ Spleiß die gleiche on this page erklärt?

Könnte jemand erklären, was macht dieser Code-Block? Die $splice Funktion ist sehr verwirrend für mich.

Antwort

16

Es ist im Grunde eine unveränderliche Version von einfachen Spleiß Funktionen wie

newcards.splice(dragIndex, 1); // removing what you are dragging. 
newcards.splice(hoverIndex, 0, dragCard); // inserting it into hoverIndex. 

Statt direkt die Ziel Array manipulieren, werden diese Unveränderlichkeit Helfer helfen Sie den Status aktualisieren, indem Sie das Erstellen und einen neuen Staat zuzuordnen.