【问题标题】:React-dnd what does $splice doReact-dnd $splice 做了什么
【发布时间】:2015-11-26 14:08:00
【问题描述】:

我正在阅读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]
        ]
      }
    }));}

这个 $splice 和 on this page 解释的一样吗?

谁能解释这段代码的作用? $splice 函数让我很困惑。

【问题讨论】:

    标签: reactjs react-dnd


    【解决方案1】:

    它基本上是普通拼接函数的不可变版本,例如

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

    这些 Immutability Helpers 不是直接操作目标数组,而是通过创建和分配新状态来帮助您更新状态。

    【讨论】:

      【解决方案2】:

      我花了一段时间才明白。这是常规箭头函数中的逐步说明

        moveCard = (dragIndex, hoverIndex) => {
          // list of cards
          let newcards = this.state.cards; 
      
          // dragCard is card we are dragging
          let dragCard = newcards[dragIndex]; 
      
         // removing this dragCard from array
          newcards.splice(dragIndex, 1);
      
           // insert dragCard at hover position
          newcards.splice(hoverIndex, 0, dragCard); 
      
          // update State
          this.setState({
            cards: newcards
          });
        };
      

      【讨论】:

      猜你喜欢
      • 2019-05-15
      • 2020-05-23
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 2022-07-19
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多