类似componentDidUpdate的事件,但仅触发一次

电源1

我有一些组件应该在它们的数据首次到达并呈现后立即执行一些工作,但不用于将来的重新呈现。例如:注释已加载并呈现,现在1.加载社交媒体库和2.加载一些Google Analytics(分析)。

现在我正在这样做:

componentDidUpdate: function (prevProps, prevState) {
    if (this.hasAlreadyUpdatedOnce) {
        // ... do some stuff...
    } else {
        // ... do some stuff that should happen only once...
        // 1. load social media libraries
        // 2. load some Google Analytics
        this.hasAlreadyUpdatedOnce = true;
    }
}

但是我问自己,是否有比设置类似属性更优雅的方法。

旅团

假设您正在响应状态更改,则应将回调作为第二个参数传递给setState。

componentDidMount: function(){
  ajaxyThing(function(data){
    this.setState({data: data}, function(){
      // this.state is updated, the component has rerendered 
      // and the dom is current
    });
  }.bind(this));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“ onclick”事件仅触发一次

来自分类Dev

拖动事件仅触发一次

来自分类Dev

jQuery .change()事件仅触发一次

来自分类Dev

PropertyChanged事件触发器仅发生一次

来自分类Dev

仅触发一次热键/快捷事件

来自分类Dev

更改事件处理程序仅触发一次,jQuery

来自分类Dev

window.resize事件仅触发一次

来自分类Dev

仅触发一次jQuery滚动事件

来自分类Dev

仅触发一次jQuery mousemove事件

来自分类Dev

AngularJS-事件仅触发一次

来自分类Dev

iframe中的onload事件仅触发一次

来自分类Dev

jQuery Bootstrap Datepicker Click事件仅触发一次

来自分类Dev

仅触发一次的Symfony身份验证事件?

来自分类Dev

更改事件处理程序仅触发一次,jQuery

来自分类Dev

仅触发一次jQuery滚动事件

来自分类Dev

jQuery Mobile vclick事件仅触发一次

来自分类Dev

仅触发一次热键/快捷方式事件

来自分类Dev

jQuery animate仅通过keypress事件触发一次

来自分类Dev

Word加载项DocumentBeforeClose事件仅触发一次

来自分类Dev

Javascript onkeydown事件仅触发一次

来自分类Dev

onclick输入文件,仅触发一次onChange事件

来自分类Dev

Kendo Tabstrip单击事件仅触发一次

来自分类Dev

单击事件仅触发一次JQuery / bPopup

来自分类Dev

如何使由键触发的事件仅发生一次?

来自分类Dev

Xamarin AnimationEnd事件仅触发一次

来自分类Dev

jQuery 单击事件仅触发一次

来自分类Dev

当事件仅发生一次时,JavaScript事件被触发两次

来自分类Dev

当事件仅发生一次时,JavaScript事件被触发两次

来自分类Dev

ComponentDidUpdate触发多次而不是每次更新一次