我正在学习reactjs,并且正在做笔记应用程序。到目前为止,它的工作正常,但是当我关闭便笺,然后尝试再次打开相同的便笺时,它不起作用。如果我打开的其他音符不是我关闭的音符,则效果很好。
我知道我的if条件是导致此问题的原因,因为我的代码nextProps.note.id !== this.state.note.id
中存在以下条件,该条件仅在id不同的情况下才返回true。
我尝试了许多变体,但无法同时实现音符详细信息和关闭功能。我知道我是如此亲密,只是犯了一些愚蠢的错误,但是我无法抓住那个错误,可能是因为我对reactjs的理解很薄弱。
如果有人可以向我指出正确的方向,或者只是提供一个有用的提示,因为到目前为止我已经花了很多时间没有运气。
演示:https://codesandbox.io/s/wqqklork
如何重新创建错误:单击注释1,然后单击关闭注释按钮,然后再次单击注释1(这不起作用),但是,如果单击注释2,它将起作用。
答案 0 :(得分:0)
我认为这与组件生命周期有关,当您单击新注释时,将呈现一个全新的组件,但是当您单击同一组件两次时,第二次不呈现新组件,而是更新了相同组件。检查willcomponentupdate生命周期方法。希望如此。