Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 迁移到React中的ES6类,处理与状态交互的mixin_Reactjs_Inheritance_Ecmascript 6_Mixins - Fatal编程技术网

Reactjs 迁移到React中的ES6类,处理与状态交互的mixin

Reactjs 迁移到React中的ES6类,处理与状态交互的mixin,reactjs,inheritance,ecmascript-6,mixins,Reactjs,Inheritance,Ecmascript 6,Mixins,我们正在准备将React代码库迁移到使用ES6类,当然这意味着要处理我们所有的mixin。我已经研究了讨论转换mixin方法的文档,例如使用高阶组件或采用实用方法并将它们放入导入的模块中。然而,我们有一些混音,这些方法将无法工作 一个简单的示例是一个mixin,其中包含来自以下表单文档的handleChange函数版本: 它是一种实用函数,但由于它与状态交互,因此不能将其放在单独的模块中。它不能作为HOC工作,因为嵌套组件将无法访问该函数 这似乎是使用继承的一个很好的例子,但我一直在阅读有关如何

我们正在准备将React代码库迁移到使用ES6类,当然这意味着要处理我们所有的mixin。我已经研究了讨论转换mixin方法的文档,例如使用高阶组件或采用实用方法并将它们放入导入的模块中。然而,我们有一些混音,这些方法将无法工作

一个简单的示例是一个mixin,其中包含来自以下表单文档的handleChange函数版本:

它是一种实用函数,但由于它与状态交互,因此不能将其放在单独的模块中。它不能作为HOC工作,因为嵌套组件将无法访问该函数

这似乎是使用继承的一个很好的例子,但我一直在阅读有关如何不鼓励使用继承以及如何在React中不必要使用继承的文章。我还看到了ES6的“mixin”模式,其中包含返回一个子类的函数,该子类向另一个类添加功能,有效地动态地对某个类进行子类化,但这似乎不正确,而且它似乎忽略了mixin不受欢迎的原因

我想来自mixin的代码可以内联到使用它的组件中,但我讨厌到处复制这样的样板代码。此外,我们还有其他与此类似的混入,它们包含更复杂的功能,这使得问题更加严重


我很想听听人们对如何在react和ES6的最佳实践指南中最好地处理这个问题的建议。谢谢

现在也有同样的问题,构图不是完美的搭配。混合在很多情况下都非常有用,因为状态可以相互作用。现在有同样的问题,组合并不是完美的组合。mixin在许多情况下都非常有用,因为状态可以与之交互。