我正在升级到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"
加载另一个捆绑文件时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"))
。
我怀疑这段代码是不兼容的来源:
from selenium import webdriver
driver = webdriver.PhantomJS()
address = 'https://www.trustnet.com/factsheets/o/g6ia/ishares-global-property-securities-equity-index-uk'
xpath = '//*[@id="factsheet-tabs"]/fund-tabs/div/div/fund-tab[3]/div/unit-details/div/div/unit-information/div/table[2]/tbody/tr[3]/td[2]'
price = driver.find_element_by_xpath(asset['xpath'])
print price.text
driver.close()
我在任何生命周期方法之外渲染此AFAIK,此代码是我的webpack配置文件中应用程序的入口点。
如果它有用,我很乐意附加更多的构建脚手架。该应用程序在15.6.2下完美运行。
答案 0 :(得分:1)
未捕获的TypeError:无法读取属性&#39; string&#39;未定义的
这看起来像是由
之类的代码引起的MyComponent.propTypes = {
something: React.PropTypes.string
};
这是因为PropTypes
已被移动到React 16中的单独包中:
MyComponent.propTypes = {
something: PropTypes.string
};
此代码 在15中发出警告,因此如果您没有看到警告,则说明您的设置可能有问题。例如,您可能在开发中错误地使用了React的生产版本,因此没有看到警告。
看到您使用了React Router,请确保将其更新为与React 16兼容的版本。最新的3.x和4.x版本都兼容。