与旧版本的react捆绑在一起的组件是否与其未来版本兼容?

时间:2019-07-01 15:50:26

标签: javascript reactjs

我有一个使用styleguidist和其他自定义功能的组件库包*,它使我可以在不同的应用程序中重复使用某些表示/哑组件。

这些是经过构建,测试和导入的,并在成功使用React v16的不同项目中使用。

最近试图将该包包含在React v15项目中,但失败了;没有错误,但是DOM出现了“ <undefined></undefined>”:

import { Foobar } from '@privatePackage/packageFoobar'

<Foobar /> 

渲染:

<undefined></undefined>

理想情况下,我会将旧项目更新为React的最新版本,并在原始源中设置peerDependencies,以防止将React *捆绑在软件包中*进行分发。另外,在devDependencies中进行“反应”以开发。

"peerDependencies": {      
    "react": ">=16.x",
    ...
},
 "devDependencies": {      
    "react": ">=16.x",      
    ...
}

那么,认为与旧版React捆绑在一起的组件与以后的版本不兼容是正确的吗?还是将React捆绑在发行文件中是为什么它不起作用的原因?我知道捆绑“ React”不是一个好习惯,而应该作为peerDependency,但是对于遗留项目而言,由于与项目中大多数程序包相关的API更改等原因,现在不更新React是理想的选择。

更新

如上所述,即使彼此捆绑在一起,尝试使用彼此不同的React版本也不是一个好习惯,在上述情况下,组件是从使用最新React版本的项目中导入的,然后导入到旧版本。它失败了,应该失败了。

要解决此问题,需要对旧项目包进行单独更新并解决任何API更改等问题。随后,较低级的包(组件库*)应该在peerDependencies和开发中都具有react依赖。

0 个答案:

没有答案