javascript - ReactJS - 我不明白这个函数中使用的语法

标签 javascript reactjs drag-and-drop

我试图理解这个用于 react 拖放可排序列表的函数。

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

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

具体来说,我不明白这句话

$splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]],

我尝试查找拼接数组定义,但我只是不明白它是如何工作的。有人可以解释一下吗?

最佳答案

这是一个immutability helper 。对于数组中的每个项目,它使用该项目提供的参数在目标上调用 splice()

例如:

const collection = [1, 2, {a: [12, 17, 15]}];
const newCollection = update(collection, {2: {a: {$splice: [[1, 1, 13, 14]]}}});
// Outputs: [1, 2, {a: [12, 13, 14, 15]}]

这会访问 collection 的索引 2、键 a,并从索引 1 开始拼接一项(以删除 17),同时插入 13 和 14。

关于javascript - ReactJS - 我不明白这个函数中使用的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51026509/

相关文章:

javascript - 从客户端的 mongo _id 中提取日期

javascript - 无法获取组件类中的当前路由

javascript - ReactJS:更改子组件的状态

c# - 如何获取生成拖放的应用程序的名称

user-interface - QML 拖动一个组件,就好像它具有顶部堆叠顺序(最大 z)

Extjs 创建新浏览器

javascript - Rails 3.1 中页面特定的 javascript 文件

javascript - 是否可以检测浏览器何时使用后备字体而不是 CSS 中指定的主要字体?

javascript - 失去焦点后 Angular watch 不更新

javascript - 创建 React 函数组件时,使用粗箭头函数还是常规 ES5 函数更好?