【问题标题】:Animate component when state changes in React.js当 React.js 中的状态改变时动画组件
【发布时间】:2015-06-10 18:40:08
【问题描述】:

当存储在状态中的数据值发生变化时,我正在尝试在 HTML 元素上制作一个小动画。怎样才能做到这一点?

如何在componentWillUpdate 中向组件添加 CSS 类并在 componentDidUpdate 中删除它?我没有看到任何对任何 HTML 元素的引用。

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

如果需要给组件添加类:React.findDOMNode(this).classList.add("classname");

要删除: React.findDOMNode(this).classList.remove("classname");

如果您尝试在componentWillUpdate 中添加一个类并在componentDidUpdate 中删除它,您需要使用 setTimeout 之类的东西来发现变化。例如:

componentWillUpdate: function() {
    React.findDOMNode(this).classList.add("class1", "class2");
},
componentDidUpdate: function() {
    var el = React.findDOMNode(this);
    setTimeout(function(){
       el.classList.remove("class1");
    }, 1000);
}

【讨论】:

  • 请记住,不推荐使用 React.findDOMNode。请改用 require('react-dom') 中的 ReactDOM.findDOMNode。
  • 您可能希望清除 componentWillUnmount 中的超时。
猜你喜欢
  • 1970-01-01
  • 2021-06-08
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2019-08-08
  • 1970-01-01
相关资源
最近更新 更多