如何正确删除操作?

问题描述 投票:0回答:1

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

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

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

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

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

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

reactjs redux react-redux redux-thunk
1个回答
0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.