StandardJS linting возвращает ошибку разбора статической переменной
Я получаю Parsing error: Unexpected token
ошибка linting для этой строки с использованием стандарта JS. Поэтому мой КИ терпит неудачу.
Я не понимаю, что не так с этой строкой. Как я мог это исправить?
export default (App) => {
return class Apollo extends React.Component {
static displayName = 'withApollo(App)' // <--
static async getInitialProps (ctx) {
// ...
}
}
1 ответ
Если это стандартный javascript, то ошибка в том, что классы могут содержать только функции, а не свойства.
Правильный синтаксис должен быть:
class Apollo extends React.Component {
static async getInitialProps (ctx) {
// ...
}
Apollo.displayName = 'withApollo(App)';
export default (App) => {
return Apollo;
}
Если вы используете предложенные (но еще не реализованные или не утвержденные) свойства класса ES7/ES8, то, возможно, eslint
пока не поддерживает.
Если, в отличие от исходного вопроса, вам нужно использовать App
параметр, просто сделайте это в функции, которую вы хотите экспортировать:
class Apollo extends React.Component {
static async getInitialProps (ctx) {
// ...
}
export default (App) => {
Apollo.displayName = `withApollo(${App})`;
return Apollo;
}