Доступ к статическим полям внутри статических методов

У меня есть класс, который сводится к

class MyClass {
    static someField = "somestring";
    static someMethod() {
        [...]
        MyClass.someField;
        [...]
    }
}

export default MyClass;

Проблема в том, что я не могу получить доступ к someField внутри someMethod, Когда утешает someField это просто не определено.

Я использую Babel 6.x State:0 для перехода на ES5

Актуальный релевантный исходный код

import s from './Button.scss'; // 's' is an object

class Button extends Component {

  static propTypes = {
    [...]
  };

  static defaultProps = {
    [...]
  };

  static buttonStylePrefix = 'style-'; // eslint-disable-line

  /**
   * Get the possible styles for a button
   *
   * @return {string[]} The button styles
   */
  static getButtonStyles() { // eslint-disable-line
    const classes = Object.keys(s);
    const styles = [];
    for (let i = 0; i < classes.length; i++) {
      const styleClass = classes[i];
      console.log(typeof styleClass); // prints "string"
      console.log(Button.buttonStylePrefix); // print "undefined"
      if (styleClass.startsWith(Button.buttonStylePrefix)) {
        styles.push(styleClass.substring(Button.buttonStylePrefix.length));
      }
    }
    return styles;
  }

  [...]
}

1 ответ

Проблема не в доступе к статическому свойству, которое работает как положено (ClassName.staticField), но запускается с не определяется для строк при компиляции с помощью babel. Сообщение об ошибке также является исключительно загадочным, что приводит к путанице.

Другие вопросы по тегам