如何正确删除操作?
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。
另一个替代方案是,如果您已完成输入,则只需在下一个渲染中不渲染组件,并且状态将自动清除,因为它将被卸载。
以上是关于如何正确删除操作?的主要内容,如果未能解决你的问题,请参考以下文章