我的应用目前使用Material- / ui v0.17.0,为了使用React v16.0.0,我必须升级到Material-UI v1.0.0。
我见过迁移工具here。这只是或多或少地更新了import语句。许多道具似乎已经改变,并且不向后兼容。这个工具实际上对我不起作用 我手动更新了我的所有导入。几乎看起来我必须使用新的更新的v1.0.0组件重写此应用程序的整个前端代码。必须有一个更好的方法来做到这一点。我知道主要版本更改是“破坏”更改,但此版本升级可能也是一个全新的包。我不可能是唯一一个不得不升级到v1.0.0的人,并且对其他人如何能够成功迁移感到好奇。
答案 0 :(得分:1)
正如您已经注意到API不向后兼容且migration guide将继续......我认为这是有原因的。
虽然大多数组件都有替换,但看起来没有简单的迁移方法,特别是因为1.x中没有自动完成等组件。如果你通过触摸内部构件重新投入重新组装组件,那么你将会遇到更难的时间,因为在1.x JSS中提出了样式化方法。
我现在看到的唯一方法是逐个组件地重写它。这不是您希望在迁移指南中阅读的内容:)
答案 1 :(得分:0)
对于我的特定项目,解决方案似乎是我可以将react
v16.4.1和material-ui
v0.20.0一起使用。为此,我必须删除与{= 1.4.0的react-tap-event-plugin
版本不兼容的react
。这涉及将onTapEvent
标签转换为onClick
。幸运的是,由于不必升级material-ui的新主要版本,因此我不必更新我的组件。
除了所有这些,我确实花了一些时间将material-ui
组件转换为v1.2.0,然后才找到不需要修改这些组件的解决方案。尝试执行这些更改时,文档很少。我确实找到了另一个Stack Overflow线程,询问向v1.x.x here的迁移。
在该线程中,我链接了引起同样关注的几个github问题,如果您自己尝试进行此版本的转换,它们可能是您值得关注的宝贵资源。
[docs] 0.x => 1.x migration guide #7195
Codemod error when upgrading from v0.18.7 to v1.1.0 #11819
As well as some code someone documented when making the transition.
Here is a project where someone went through upgrading to mui 1.x.x from 0.x.x