- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 React 教程 here .在第四课中,它让我创建一个 App.propTypes
部分。当我运行代码时,React 给我一个错误,说 TypeError: Cannot read property 'string' of undefined
当我打开我的控制台时,错误说 React.PropTypes is deprecated since React 15.5.0 ,改用 npm 模块 prop-types
。然后我继续安装 npm 包 prop-types并将其导入到我的代码中,但我仍然遇到同样的错误。我将在下面包含我的代码。
我正在使用 Node 版本 v8.5.0。也许我应该尝试找出教程使用的 Node 版本,以便我的 React 版本匹配,但我什至不知道我是否能找到它,我希望教程能指定这些东西,它看起来像这样教程已有 2 年历史,这可能就是我遇到这种差异的原因。
src/app.js
import React from 'react';
import PropTypes from 'prop-types';
class App extends React.Component{
render(){
let txt = this.props.txt
return (
<div>
<h1>{txt}</h1>
<b>bold</b>
</div>
)
}
}
App.propTypes = {
txt: React.PropTypes.string,
cat: React.PropTypes.number.isRequired
}
export default App;
/src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<App cat={5} txt="this is the prop value" />,
document.getElementById('root')
);
最佳答案
改变
txt: React.PropTypes.string,
cat: React.PropTypes.number.isRequired
到
txt: PropTypes.string,
cat: PropTypes.number.isRequired
您已将 PropTypes 从“prop-types”导入为 PropTypes,因此无需将 PropTypes 用作 React 的属性。使用 PropTypes 作为 React 的属性在几个月前就被弃用了。
此外,您将 cat 标记为 isRequired 但不要在 App 组件中的任何地方使用它。这样会显示一个 lint 错误。
除此之外,我不确定是什么问题。我在我的机器上运行了你的源代码,结果没问题。
关于javascript - React.PropTypes 已弃用,我已经安装了 prop-types 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569830/
我是一名优秀的程序员,十分优秀!