如何正确删除操作?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确删除操作?相关的知识,希望对你有一定的参考价值。

我正在寻找如何正确删除操作的最佳实践。

例如,我的减速机中有一系列照片。其中一项功能是选择要删除的功能。我决定存储在反应状态下选择的项目。我存储了ID数组。

因此,在删除操作后,我必须从redux存储中删除照片并清除处于反应状态的所选数组。

我的建议是订阅承诺并执行以下操作:

 this.props.deletePhotos(selected)
.then(() => {
   this.setState({ selected: [] })
 })
.catch((err) => {
   console.log(err)
})

但是伙计们说这是一个不好的做法。这是真的吗?如何以正确的方式改变它?

答案

您需要遵守的主要原则是您的州应始终有效。通过使用承诺,您将删除照片,呈现无效状态,然后更新反应状态。即使这样的渲染确实无关紧要,但这并不是很好的做法。

你可以不在承诺中设置状态:

const selected = this.state.selected
this.props.deletePhotos(selected)
  .catch((err) => {
    console.log(err)
  })
this.setState({selected: []})

或者,如果你想做一些比清除更复杂的事情,你可以使用getDerivedStateFromProps并修改状态,如果相关的道具被改变,可能来自redux。

另一个替代方案是,如果您已完成输入,则只需在下一个渲染中不渲染组件,并且状态将自动清除,因为它将被卸载。

以上是关于如何正确删除操作?的主要内容,如果未能解决你的问题,请参考以下文章

XSS:如何从 C# 中的字符串中删除 JS 片段?

Realm保留一个已删除的对象

操作栏标签片段中的片段?

VSCode 如何操作用户自定义代码片段(快捷键)

如何正确删除操作?

标签菜单android - 不正确的调用片段