今天做个简单的demo,老是报static defaultProps语法错误,代码如下


import React,{Component} from 'react';
import ReactDOM from 'react-dom';class Button extends  Component{constructor(props) {super(props);}static defaultProps = {color:'blue',text:'Confirm',}render(){const{ color,text} = this.props;return (<button className={`btn btn-${color}`}><em>{text}</em></button>)}
}
ReactDOM.render(<Button color="red" text="Danger!"  />,document.getElementById('app')
);

报错如图

Module build failed: SyntaxError: F:/reactdemo/reactapp/main.js: Unexpected token (10:24)8 |9 |     }
> 10 |     static defaultProps = {|                         ^11 |         color:'blue',12 |         text:'Confirm',13 |     }

最后查查资料,发现如果babel设置为es6的转码方式,会报错,因为定义静态属性不属于es6,而在es7的草案中。ES6的class中只有静态方法,没有静态属性。
由于是用ES6 class语法创建组件,其内部只允许定义方法,而不能定义属性,class的属性只能定义在class之外。所以defaultProps要写在组件外部。

解决方案
将babel设置为es7的转码方式,在项目下安装babel-preset-stage-0

npm install babel-preset-stage-0 --save-dev

在项目根目录配置.babelrc文件

{"presets": ["es2015", "stage-0"]
}

webpack.config.js配置文件修改

module: {rules: [ {test: /\.jsx?$/,exclude: /node_modules/,loader: 'babel-loader',query: {presets: ['es2015', 'react','stage-0']}}]}

加入stage-0后就能尝试es7语法了,static也能在class内部定义属性了!

react设置static defaultProps报错问题解决相关推荐

  1. Please change the shape of y to (n_samples,), for example using ravel().python3报错问题解决

    A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_sample ...

  2. tez引擎跑hive 语句报错问题解决

    tez引擎跑hive 语句报错问题解决 现象: Container [pid=151320,containerID=***] is running beyond physical memory lim ...

  3. Node.js 、Newman安装配置及报错问题解决

    Node.js .Newman安装配置及报错问题解决 Node.js 下载: Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 你可以根据不同平 ...

  4. Android应用数据清理命令(adb clear)的使用执行报错问题解决

    Android应用数据清理命令(adb clear)的使用&执行报错问题解决 清理应用数据 我们在调试 Android 应用时,经常需要清理应用数据,在手机设置里找,当然也可以做到清理数据,但 ...

  5. django 使用json.dumps转换queryset的datatime报错问题解决

    django 使用json.dumps转换queryset的datatime报错问题解决 参考文章: (1)django 使用json.dumps转换queryset的datatime报错问题解决 ( ...

  6. python3的urllib2报错问题解决方法

    python3的urllib2报错问题解决方法 参考文章: (1)python3的urllib2报错问题解决方法 (2)https://www.cnblogs.com/marsggbo/p/66229 ...

  7. mysql max字符串报错_mysql [Warning] max_join_size报错问题解决办法

    文章介绍了关于mysql [Warning] max_join_size报错问题解决办法,有需要的同学看看. 100716 06:32:45 d started 100716 6:32:45 [War ...

  8. ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url

    ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url WARNING: sanitizing uns ...

  9. java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: NO)报错问题解决

    java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)报错问题解决 参考文章: (1)jav ...

最新文章

  1. UISlider 滑竿控件
  2. python语言有什么用-python语言为什么好呢?它有什么特点?
  3. Implement strStr()
  4. Linux 下安装配置C/C++开发环境 Code::Blocks
  5. Spring+Mybatis多数据源配置
  6. BootStrapJS——modal弹出框
  7. 计算机应用基础一级考试题库,2018一级结构工程师《计算机应用基础》题库及答案(一)...
  8. Redis普通分布式锁
  9. axios发post请求,后端接收不到参数的问题
  10. pandas.DataFrame对根据某些列对某些列进行修改
  11. 我的面试准备过程--队列与栈(更新中)
  12. grid函数--Matplotlib
  13. 物联网基础建设-园区智能微电网设计方案
  14. 数据分析师出品:人力资源岗位年终总结可视化模板
  15. echarts树形结构实现组织架构图
  16. 一个博士的悲情经历~失败的经验最美···小木虫上的系列精华帖(科研的、被科研的,共勉。转载,个人整理)
  17. ARM Uboot经历——Uboot初始化代码解析
  18. Android webview加载天猫店铺时会报net::ERR_UNKNOWN_URL_SCHEME;
  19. 2022保育员(高级)考试模拟100题及在线模拟考试
  20. BIM的发展现状与技术优势

热门文章

  1. vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
  2. 软考网络规划设计师备考及通过心得
  3. 抗锯齿 文字_PS之使用文字工具
  4. vue中router-link绑定click失效
  5. CSS中z-index
  6. MySQL优化常见Extra分析——慢查询优化
  7. button的onclick函数一直刷新
  8. Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包
  9. 剑指offer_第一个只出现一次的字符
  10. qt5连接sqlite数据库实例