如何在 React 和 Webpack 中使用提议的 ECMAscript class 语法?
How to use the proposed ECMAscript class syntax with React and Webpack?
我正在尝试学习 ecmascript 的建议 class 语法并将其与 React 一起使用,我已经使用带有 webpack 的 babel 成功渲染了带有 es6 的组件。现在我想在构造函数外部声明的 classes 中使用实例属性。例如:
class MyComponent extends React.Component{
constructor(props){
super(props)
}
property1= "new property";
func1= ()=>{
}
}
我在 'property1' 和 'func1' 上遇到错误 "unexpected token",同时尝试做这样的事情。另外,我在 webpack 中使用 babel presets for react 和 babel-preset-env 插件。
我想在我的 class 中限制使用 "this" 关键字,所以我认为较新的 es7 classes 可以实现这一点,我该怎么做?任何帮助将不胜感激。
编辑 1:如答案中所建议,
我包含了 "babel-preset-stage-2" 预设,并且我能够在 class 中包含构造函数之外的变量,但必须使用 'this' 来引用它们。
为此您需要正确的 babel 插件。
npm install --save-dev babel-plugin-transform-class-properties
.babelrc
{
"plugins": ["transform-class-properties"]
}
更多信息:https://babeljs.io/docs/plugins/transform-class-properties/
那个语法不是 "ES7"(我假设你的意思是 ES2016, aka the 7th edition). In fact, it's not even ES2017. It's still a Stage 3 proposal)。它 可能 如果在它在截止前达到第 4 阶段的时间。
要将它与 Babel 一起使用,请为该功能启用 stage-3
preset or the specific plugin (transform-class-properties
)。
我正在尝试学习 ecmascript 的建议 class 语法并将其与 React 一起使用,我已经使用带有 webpack 的 babel 成功渲染了带有 es6 的组件。现在我想在构造函数外部声明的 classes 中使用实例属性。例如:
class MyComponent extends React.Component{
constructor(props){
super(props)
}
property1= "new property";
func1= ()=>{
}
}
我在 'property1' 和 'func1' 上遇到错误 "unexpected token",同时尝试做这样的事情。另外,我在 webpack 中使用 babel presets for react 和 babel-preset-env 插件。
我想在我的 class 中限制使用 "this" 关键字,所以我认为较新的 es7 classes 可以实现这一点,我该怎么做?任何帮助将不胜感激。
编辑 1:如答案中所建议, 我包含了 "babel-preset-stage-2" 预设,并且我能够在 class 中包含构造函数之外的变量,但必须使用 'this' 来引用它们。
为此您需要正确的 babel 插件。
npm install --save-dev babel-plugin-transform-class-properties
.babelrc
{
"plugins": ["transform-class-properties"]
}
更多信息:https://babeljs.io/docs/plugins/transform-class-properties/
那个语法不是 "ES7"(我假设你的意思是 ES2016, aka the 7th edition). In fact, it's not even ES2017. It's still a Stage 3 proposal)。它 可能 如果在它在截止前达到第 4 阶段的时间。
要将它与 Babel 一起使用,请为该功能启用 stage-3
preset or the specific plugin (transform-class-properties
)。