Вызов статической функции в класс React ES6

У меня есть следующий класс ReactJS:

import React from 'react'

export class Content extends React.Component {

  static getValue(key) {
    return key
  }

  render() {
    let value = this.getValue(this.props.valueKey);
    return <span dangerouslySetInnerHTML={{__html: value}} />
  }
}

Но у меня есть следующая ошибка:

TypeError: this.getValue is not a function

Я не понимаю. Это хороший способ вызвать статическую функцию? Я думаю, что реакция делает что-то со статикой, но я не знаю, что.

Ответы

Ответ 1

Статический метод должен быть доступен для класса, а не для экземпляра. Поэтому в вашем случае используйте:

Content.getValue()

Однако статический метод не сможет получить доступ к this - я не думаю, что вы хотите, чтобы метод был статическим на основе вашего примера кода выше.

Подробнее: Статические члены в ES6

Ответ 2

Вы можете получить доступ из класса в качестве this.constructor.getValue.

Изменить: я добавил JSFiddle здесь. Единственное изменение, которое я сделал, это добавить вызов функции из конструктора и удалить опасно установленный innerHTML - Как показано, вы можете получить доступ к статическому getValue из this.constructor и отлично работать.