【问题标题】:Why splice delete only last element? [duplicate]为什么拼接只删除最后一个元素? [复制]
【发布时间】:2019-08-03 17:49:00
【问题描述】:
onRemoveVariant(groupKey, questionKey, variantKey) {
    const {questionGroups} = this.props;
    questionGroups[groupKey].questions[questionKey].variants.splice(variantKey, 1);
    this.props.updateQuestionnaire('questionGroups', questionGroups);
}

我有 5 个变体,当我编辑时,如果我首先使用删除变体或任何其他变体,总是只有最后一个变体得到拼接!
为什么?如果按键拼接不起作用,如何使用拼接? Img example

【问题讨论】:

  • 如果没有看到render 的代码,很难判断,但映射数组时您可能将index 指定为key
  • 是的,关键是索引,当我用数字 0-3 测试时(对我没有帮助)

标签: reactjs


【解决方案1】:

在数组中找到该特定元素的索引,然后使用该索引代替 splice(variantKey,1) 作为 splice(index,1)

【讨论】:

  • 这不起作用的关键是索引,当我像 splice(1, 1) 一样测试时,这不起作用并且第二个元素没有被删除((只有最后一个元素被删除(
  • var fruits = ["Banana", "Orange", "Apple", "Mango"]; function myFunction() { fruits.splice(2, 1); } fruits will be [ "Banana", "Orange", "Mango" ].. 同样,当您正确使用索引时,它必须工作。希望这会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多