Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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
Javascript 更新到Material UI v1.x.x_Javascript_Css_Version Control_Migration_Material Ui - Fatal编程技术网

Javascript 更新到Material UI v1.x.x

Javascript 更新到Material UI v1.x.x,javascript,css,version-control,migration,material-ui,Javascript,Css,Version Control,Migration,Material Ui,我的应用程序目前使用Material-/ui v0.17.0,为了使其与React v16.0.0配合使用,我必须升级到Material ui v1.0.0 我看过迁移工具。这只是或多或少地更新导入语句。许多道具似乎已经改变,并没有向后兼容。这个工具实际上不适合我,所以 我手动更新了所有导入内容。看起来我几乎不得不使用新的更新的v1.0.0组件重写这个应用程序的整个前端代码。必须有更好的方法来做到这一点。我知道主要的版本更改是“破坏性”更改,但这次版本升级也可能是一个全新的包。我不是唯一一个不得

我的应用程序目前使用Material-/ui v0.17.0,为了使其与React v16.0.0配合使用,我必须升级到Material ui v1.0.0

我看过迁移工具。这只是或多或少地更新导入语句。许多道具似乎已经改变,并没有向后兼容。这个工具实际上不适合我,所以
我手动更新了所有导入内容。看起来我几乎不得不使用新的更新的v1.0.0组件重写这个应用程序的整个前端代码。必须有更好的方法来做到这一点。我知道主要的版本更改是“破坏性”更改,但这次版本升级也可能是一个全新的包。我不是唯一一个不得不升级到v1.0.0的人,我很好奇其他人是如何成功迁移过来的。

正如您所注意到的,API不向后兼容,将继续。。。我认为这是有原因的

尽管大多数组件都有它们的替代品,但似乎没有直接的迁移方法,特别是因为像autocomplete这样的一些组件在1.x中不存在。如果您大量投资于通过接触内部构件来重新构建组件的样式,那么您将面临更大的困难,因为在1.xJSS中提出了一种样式化方法


我现在看到的唯一方法是一个组件一个组件地重写它。这不是您想在迁移指南中看到的:)

对于我的特定项目,解决方案似乎是我可以使用
react
v16.4.1和
materialui
v0.20.0。在这样做时,我不得不删除与
react
版本>=16.4.0不兼容的
react点击事件插件。这涉及将
onTapEvent
标记转换为
onClick
。幸运的是,由于不必升级MaterialUI的新主要版本,我不必更新我担心的组件

除此之外,我确实花了一些时间将
材质ui
组件转换为v1.2.0,然后才找到不需要这些组件修改的解决方案。在尝试执行这些更改时,文档很少。我确实发现另一个堆栈溢出线程询问迁移到v1.x.x的问题

在该线程中,我链接到了几个引起同样关注的github问题,如果您自己尝试进行此版本转换,它们可能是一个值得关注的宝贵资源


我是唯一一个认为这有点荒谬的人吗?例如,从使用组件迁移现在需要使用:Dialog DialogActions DialogContent DialogContentText DialogTitle。我很想知道大型网站/应用程序是如何完成迁移的。我怀疑他们是否会一个组件一个组件地重写所有内容。另一方面,我们使用材料ui 0.x将React改为16,并且没有注意到任何视觉退化(~15k LOC项目)。我们还尝试使用material ui next,正如他们建议的那样,逐个移植我们的组件,而且效果也很好,因此我们能够在同一个应用程序中使用0.x和1.x组件。无论如何,由于其他原因,我们放弃了那个项目,用最新的material和react版本从头开始。你是说我可以用react v16.0.0运行我的应用程序,而不将material ui升级到v1.0.0吗?如果这影响了你的答案,我也在使用webpack。是的,它在我们基于webpack的设置中起作用。如果我没记错的话,唯一的问题是一些第三方软件包的PeerDependence设置为fixed React 15。material ui本身接受React 16,看看package.json看起来与React v16的兼容性在MUI v0.18.7和commit中出现了:您尝试过这个吗?将MUI升级到v0.18.7(甚至是最新的0.20.1)并删除React v15.5.x对我来说似乎比保留React的2个版本更安全、更合理。