装饰器功能不起作用(意外令牌)

时间:2018-05-09 15:45:36

标签: javascript decorator ecmascript-next

试图在React中使用装饰器:

import React from 'react';
import Fade from './Transitions/Fade'
import withVisible from './withVisible'

@withVisible()
const App = props =>
    <Fade visible={props.visible} duration={500}>
        Hello
    </Fade>

export default App

如果我使用常用​​方式(withVisible()(App)),那么它正常工作。 (我的猜测是NodeJS无法使用@编译我的代码)[语法错误:意外的令牌(@)]

import React from 'react'

const withVisible = () => Component =>
    class WithVisible extends React.Component {
        state = {
            visible: true
        }
        render() {
            return (
                <Component visible={this.state.visible} {...this.props}/>
            )
        }
    }

export default withVisible

2 个答案:

答案 0 :(得分:0)

可能你的.babelrc没有添加装饰器插件。 试试这个:https://babeljs.io/docs/plugins/transform-decorators

答案 1 :(得分:0)

您需要transform-decorators-legacy babel插件才能使此语法有效。