我只是想知道是否还有完全克隆已经呈现的React
组件。我已经阅读了cloneElement
但是当我渲染该克隆时,我收到了一个错误:
未捕获错误:不变违规:元素类型无效
我还想知道这是否会克隆元素的子元素及其后续输入值。例如,如果某个文本位于其中一个输入中,然后克隆该组件,那么这些值是否会被保留?或者是我在克隆之前存储这些值的唯一选择?这将使我感觉紧密耦合。
答案 0 :(得分:1)
作为一般规则,我们应该始终尽量保持我们的组件尽可能无状态,这意味着您在表单中输入的数据应该存储在组件之外的某个位置(商店,也许?...我&#39 ;思考http://alt.js.org/docs/stores/)。
通过这种方法,您可以让您的组件收听该商店。您可以拥有与您一样多的组件副本,但单一的事实来源将是您的商店。
另一种情况是,如果同一组件应显示来自不同商店的数据,则不要使用商店,并使用道具。让父组件成为监听其商店的组件,并将必要的数据传递给子组件(您希望在应用程序的多个位置具有克隆的组件)。
我希望有所帮助,