[英]React app works fine with 15.6.2, breaks with 16.0.0
我正在升级到 React v16。 发布文件指出“除了少数例外,如果您的应用程序在 15.6 中运行而没有任何警告,它应该可以在 16 中运行。” 我的应用程序在 15.6.2 上运行良好(并且没有警告),但在 16.0.0 上根本没有运行,当它尝试运行包时抛出奇怪的错误: Uncaught TypeError: Cannot read property 'string' of undefined
错误Uncaught TypeError: Cannot read property 'string' of undefined
加载其中之一捆绑文件和Uncaught TypeError: Cannot read property 'string' of undefined"
在加载另一个时Uncaught TypeError: Cannot read property 'string' of undefined"
。
我怀疑这段代码是不兼容的根源:
ReactDOM.render((
<Router>
<div>
<Route component = { Header } />
<Switch>
<Route exact path = '/' component = { Home } />
<Route exact path = '/index.html' component = { Home } />
<Route path = "/browse" component = { Browse } />
. . . . . . . etc. . . . .
</Switch>
<Route component = { Footer } />
</div>
</Router>
), document.getElementById("main"))
我正在渲染这个,AFAIK,在任何生命周期方法之外,这段代码是我的 webpack 配置文件中应用程序的入口点。
如果有用的话,我很高兴添加更多的构建脚手架。 该应用程序在 15.6.2 下完美运行。
未捕获的类型错误:无法读取未定义的属性“字符串”
这看起来是由代码引起的
MyComponent.propTypes = {
something: React.PropTypes.string
};
这是因为PropTypes
已在 React 16 中移动到单独的包中:
MyComponent.propTypes = {
something: PropTypes.string
};
此代码确实在 15中发出警告,因此如果您没有看到警告,则您的设置可能有问题。 例如,也许您在开发中错误地使用了 React 的生产版本,因此没有看到警告。
看到你使用了 React Router,请确保将其更新到与 React 16 兼容的版本。最新的 3.x 和 4.x 版本都兼容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.