ReduxForm:标记FieldArray项目以进行删除?

时间:2018-01-05 21:31:13

标签: javascript reactjs redux-form

编辑包含已保存数据的FieldArray时,我希望删除按钮只是将属性_destroy: true添加到对象中。从那里,当我将PUT结构化为API时,我将指示该记录被销毁。

在onClick for delete中,我尝试了:

(e) => {
  const objectToDestroy = { ...fields.get(e.target.value), _destroy: true };

  // If ID exists, we need to PUT a delete, else we can just remove from the list

  fields.remove(e.target.value)
  if (objectToDestroy.id) fields.insert(e.target.value, objectToDestroy)
}

就我在商店看到的而言,这是有效的。因此,我尝试通过使“已删除”字段消失来在UI中反映这一点。这是我为确定是否渲染FieldArray迭代的字段而做的函数:

const isRowVisible = (index) => {
  return !fields.get(index)._destroy;
}

当我点击第一个销毁按钮时,该项目消失。但当我点击一秒时,它才消失,直到我专注于表单元素(强制重新呈现表单)。

有没有更好的方法来解决我错过的这一切?或者也许我做错了什么?

编辑:

我将字段_destroy添加到表单中:

<Field name={`${member}._destroy`} component="input" />

这是一个帮助可视化问题的gif:

Visualization

0 个答案:

没有答案