问题描述
react PropTypes类型检查无效,版本是最新的react。
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
import React from 'react';
import BodyChild from './bodyChild';
import PropTypes from 'prop-types';
export default class ComponentBody extends React.Component {
constructor() {
super(); //调用基类的所有初始化方法, ES6 要求,子类的构造函数必须执行一次 super 函数,否则会报错。
this.state = {
userName: 'zj'
}
}
changeNum(name) {
this.setState({
userName: name
})
}
changNumFun(event) {
this.setState({
userName: event.target.value
})
}
render() {
// setTimeout(() => {
// this.setState({
// userName:'zhaojing'
// })
// }, 1000);
//this.props.userId //获取父级传递的参数
return (
<div>
<h1> 这个是用户信息: {this.state.userName}{this.props.userId} </h1>
<button onClick = {this.changeNum.bind(this, '新名字')} > 点击 </button>
<BodyChild changNumFun = {this.changNumFun.bind(this)}/>
</div>
)
}
}
ComponentBody.propTypes = {
userId: PropTypes.number.isRequired //isRequired必要参数
}
你期待的结果是什么?实际看到的错误信息又是什么?
按照文档写的数字类型,却没有报错;
还是显现出来了。
问题出现的平台版本及自己尝试过哪些方法
安装了 @babel/plugin-proposal-class-properties,babel-preset-stage-0还是没有效果
"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.2.3",
"babel-preset-stage-0": "^6.24.1",
"webpack": "^4.28.3",
"webpack-cli": "^3.2.0"
};
module: {
rules: [{
test: /\.js?$/,
loader: 'babel-loader',
exclude: /(node_modeules)/,
query: {
presets: ['react', 'es2015','stage-0']
//presers: ['react', 'es2015']
}
}]
}
proptypes 开发模式才会报警告,而且只是控制台报警提示,并不会影响正常功能使用