共享componentDidMount()函数

时间:2015-10-12 14:37:39

标签: javascript reactjs composition

我有几个函数具有完全相同的componentDidMount函数。

有没有办法分享呢?

我正在使用ES6,显然没有办法使用Mixin。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

这适合您的情况吗?

class Parent extends React.Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    ...
  }
}

class Child extends Parent {
  constructor(props) {
    super(props);
  }
}

答案 1 :(得分:0)

最后我创建了一个文件animationCompose.js

const composeAnimation = {
    componentDidMount(){
        // Get the components DOM node
        var elem = React.findDOMNode(this);
        // Set the opacity of the element to 0
        elem.style.opacity = 0;
        window.requestAnimationFrame(function() {
            // Now set a transition on the opacity
            elem.style.transition = "opacity 250ms";
            // and set the opacity to 1
            elem.style.opacity = 1;
        });
    }
}


export default composeAnimation;

然后在我的Component.js中使用了es7 decorator

import mixin from 'mixim-decorator'
import composeAnimation from '../decorators/composeAnimation'

@mixin(composeAnimation)
class Component extends React.Component {
}