【问题标题】:Updating to Material-UI v1.x.x更新到 Material-UI v1.x.x
【发布时间】:2018-05-25 17:46:48
【问题描述】:

我的应用目前使用 Material-/ui v0.17.0,为了让它与 React v16.0.0 一起使用,我必须升级到 Material-UI v1.0.0。

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

【问题讨论】:

    标签: javascript css version-control migration material-ui


    【解决方案1】:

    您已经注意到 API 不向后兼容,migration guide 将继续使用...我认为这是有原因的。

    虽然大多数组件都有替换,但似乎没有直接的迁移方法,特别是因为自动完成等一些组件在 1.x 中不存在。如果您大量投资于通过接触内部来重新设置组件的样式,那么您将遇到更困难的情况,因为在 1.x 中提出了 JSS 样式的方式。

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

    【讨论】:

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

    对于我的具体项目,解决方案似乎是我可以使用react v16.4.1 和material-ui v0.20.0。在这样做时,我不得不删除与react >=16.4.0 版本不兼容的react-tap-event-plugin。这涉及将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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 2018-12-15
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多