如何解决未调用componentDidUpdateprevProps
**我将首先发布代码,然后再说明我后来遇到的问题。
class ParentComponent extends Component {
constructor() {
super()
this.state = {
id: null,}
}
render() {
const dataTarged = "#col" + id
const id = "col" + id
return (
<React.Fragment>
<div>
<button data-toggle="collapse" data-target={dataTarged} onClick={() => this.setState({ id: <<this id may vary>> })}>Click me</button>
</div>
<div className="collapse mt-4" id={id}>
<ChildComponent id={this.state.id} />
</div>
</React.Fragment>
)
}
}
class ChildComponent extends Component {
componentDidUpdate(prevProps) {
if (this.props.id != prevProps.id) {
//do stuff with the ID
}
}
}
说明:
场景:
- ParentComponent是'card',我不止一个具有不同的ID。
- 每当我单击按钮时,状态就会用ParentComponent中的新ID更新,并作为道具传递给ChildComponent。
我面临的问题:
如果我切换不同的ParentComponents,则停止调用ChildComponent中的componentDidUpdate,并且不会更新ID。 这意味着我需要通过该ID获得的信息不正确。
此外,ChildComponent上的render()并未被调用,由于它一旦渲染就不会再次渲染。
这就是问题,每次传递给ChildComponent的道具更改时都不应调用componentDidUpdate吗?每当我切换不同的ParentComponent时,我都会更改传递的道具。
预先感谢,希望我能清楚
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。