【问题标题】:How to best clone a class in ReactJS如何在 ReactJS 中最好地克隆一个类
【发布时间】:2015-07-02 05:21:18
【问题描述】:

我有一个想要克隆的大型 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 />

有什么想法吗?

【问题讨论】:

  • 你在使用 ES6 吗?如果是这样,您可以使用原生 JavaScript 类来扩展组件。
  • 是的,我们很可能正朝着那个方向前进。好主意,谢谢@David。

标签: reactjs


【解决方案1】:

尝试使用组合而不是克隆/继承。这是 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 将 react 元素传递给另一个组件:https://stackoverflow.com/a/25723635/540802

【讨论】:

  • 谢谢,尤金。是的,我一直在阅读有关每个人如何推荐作文的信息。似乎有很多方法可以解决这个问题,就像你指出的那样。来自骨干领域,很容易将一个视图/模型扩展到另一个,这些其他技术需要一些思维转变。仍然不确定它们是否适合...
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 2022-09-26
  • 2013-01-06
  • 2013-03-28
  • 2023-03-30
相关资源
最近更新 更多