StandardJS linting возвращает ошибку разбора статической переменной - PullRequest
0 голосов
/ 12 ноября 2018

Я получаю Parsing error: Unexpected token ошибку linting для этой строки с использованием стандартаJS. Поэтому мой КИ не работает.

Я не понимаю, что не так с этой строкой. Как я мог это исправить?

export default (App) => {
  return class Apollo extends React.Component {
    static displayName = 'withApollo(App)' // <--
    static async getInitialProps (ctx) {
    // ...
  }
}

1 Ответ

0 голосов
/ 12 ноября 2018

Если это стандартный 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;
}
...