如何在ReactJS中最好地克隆一个类

时间:2015-04-23 20:09:13

标签: reactjs

我有一个很大的ReactJS类,我想克隆它。场景是原始的React类在一批代码中,我希望在另一批代码中重复使用 - 只需进行一些小的更改。理想情况下,我希望我能做到这样的事情:

var Element1 = React.createClass({ 
  customMethod1: function() { ... },
  customMethod2: function() { ... },
  render: function () { ... }
});

// clone and override whatever we want
var Element2 = React.cloneClass(Component1);
Element2.customMethod1 = function () { ... };

// now we can use <Element2 />

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试使用组合而不是克隆/继承。这是React推荐的方法。

从React 0.12开始,新API引入了React.createFactory

var MyComponentClass = React.createClass(...);

var MyComponent = React.createFactory(MyComponentClass);

var MyOtherComponent = React.createClass({
  render: function() {
    return MyComponent({ prop: 'value' });
  }
});

另一种可能的组合方式是通过refs将反应元素传递到另一个组件:https://stackoverflow.com/a/25723635/540802