2015-08-18 12 views
2

Я добавляю React DnD в приложение, которое я создаю, и понял, что декоратор ES7 не работает (насколько я могу судить) со следующим синтаксис:ES7 decorator не работает над классом с набором «displayName»

@DragDropContext(HTML5Backend) 
export class App extends React.Component { 
    ... 
} 
App.displayName = 'My App' 

Но если я удалить App.displayName линии все в порядке. Зачем?

Как установить свойство displayName?

+0

ли 'имеют displayName' быть свойство на прототипе? –

ответ

3

Поскольку вы уже используете функции ES7, вы можете использовать ES7 class properties. Они находятся в стадии 0.

@DragDropContext(HTML5Backend) 
export class App extends React.Component { 
    static displayName = 'My App'; 
    //or just 
    //displayName = 'My App'; 
} 

Если вы используете столпотворение, вам необходимо включить функции, используя

babel --stage 0 

или

babel --optional es7.classProperties 
+0

Я думаю, что что-то не так с моей настройкой, так как некоторые функции => работали, а другие - нет. Это хороший совет. благодаря – MattDuFeu