20

React-dnd プロジェクトの例を読んでいます:

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

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

この $splice は、このページで説明されているものと同じですか?

このコードの塊が何をするのか説明できる人はいますか? この$splice機能は私にとって非常に混乱しています。

4

2 に答える 2

22

これは基本的に、次のような単純なスプライス関数の不変バージョンです。

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

これらの不変性ヘルパーは、ターゲット配列を直接操作する代わりに、新しい状態を作成して割り当てることで状態を更新するのに役立ちます。

于 2015-11-27T14:21:11.820 に答える