react PropTypes类型检查无效

问题描述

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必要参数
}

你期待的结果是什么?实际看到的错误信息又是什么?

按照文档写的数字类型,却没有报错;

clipboard.png
还是显现出来了。

问题出现的平台版本及自己尝试过哪些方法

安装了 @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']
        }
    }]

}


阅读 4.4k
2 个回答

proptypes 开发模式才会报警告,而且只是控制台报警提示,并不会影响正常功能使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题