我正在一个新的Rails应用程序上试用Webpacker来熟悉它,但我无法让它编译我的javascript代码。
下面是代码:
import React, { Component, PropTypes } from 'react'
import DayPicker, { DateUtils } from 'react-day-picker'
import 'react-day-picker/lib/style.css'
export default class Example extends Component {
constructor(props) {
super(props)
this.state = {
selectedDays: []
}
}
handleDayClick = (day, selected) => {
console.log(day)
}
render() {
return (
<p>Test</p>
)
}
}
20:05:21 hot.1 | ERROR in ./app/javascript/packs/components/example/example.jsx
20:05:21 hot.1 | Module build failed: SyntaxError: Missing class properties transform.
20:05:21 hot.1 |
20:05:21 hot.1 | 11 | }
20:05:21 hot.1 | 12 |
20:05:21 hot.1 | > 13 | handleDayClick = (day, selected) => {
20:05:21 hot.1 | | ^这是在一个全新的Rails应用上使用最新的github网站创业板。
我的.babelrc
{
"presets": ["env", "es2015", "react", "stage-2"]
}我的devDependencies是:
"devDependencies": {
"babel-preset-es2015": "^6.24.0",
"babel-preset-stage-2": "^6.22.0",
"webpack-dev-server": "^2.4.2"
}有什么想法吗?
发布于 2017-03-29 02:04:56
要解决这个问题,我必须将预置添加到单个加载程序文件中,特别是。
// config/webpack/loaders/babel.js
module.exports = {
test: /\.js(\.erb)?$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
presets: [
'es2015',
'stage-2'
]
}
}
// config/webpack/loaders/react.js
module.exports = {
test: /\.(js|jsx)?(\.erb)?$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
presets: [
'es2015',
'react',
'stage-2'
]
}
}现在我可以使用漂亮的速记箭头类函数。
发布于 2017-03-29 00:32:24
您的评论非常有启发性:这是类中的方法声明;不应该有等号或胖箭头。它应该是这样的:
handleDayClick (day, selected) {
console.log(day)
}看看constructor和render方法的外观;这就是react组件中所有方法的外观。
哦哦!
https://stackoverflow.com/questions/43082068
复制相似问题