完全克隆React组件,包括输入值

时间:2016-09-05 16:13:21

标签: reactjs

我只是想知道是否还有完全克隆已经呈现的React组件。我已经阅读了cloneElement但是当我渲染该克隆时,我收到了一个错误:

  

未捕获错误:不变违规:元素类型无效

我还想知道这是否会克隆元素的子元素及其后续输入值。例如,如果某个文本位于其中一个输入中,然后克隆该组件,那么这些值是否会被保留?或者是我在克隆之前存储这些值的唯一选择?这将使我感觉紧密耦合。

1 个答案:

答案 0 :(得分:1)

作为一般规则,我们应该始终尽量保持我们的组件尽可能无状态,这意味着您在表单中输入的数据应该存储在组件之外的某个位置(商店,也许?...我&#39 ;思考http://alt.js.org/docs/stores/)。

通过这种方法,您可以让您的组件收听该商店。您可以拥有与您一样多的组件副本,但单一的事实来源将是您的商店。

另一种情况是,如果同一组件应显示来自不同商店的数据,则不要使用商店,并使用道具。让父组件成为监听其商店的组件,并将必要的数据传递给子组件(您希望在应用程序的多个位置具有克隆的组件)。

我希望有所帮助,