Это цель статической функции. Он не может получить доступ к экземпляру (this
).
У вас может быть несколько экземпляров класса, но только одна статическая функция / свойство.
В качестве обходного пути (зависит от того, что вы хотите сделать), вы можете использовать статическое свойство для хранения вашего состояния:
class Categories extends React.Component {
constructor(props) {
super(props);
Categories.state = {
checked: [],
unchecked: []
};
}
static getCheckedCategories() {
return Categories.state.checked;
}
}
Однако он не будет работать с setState
, так как это метод экземпляра.
Представьте себе ситуацию, когда у вас есть несколько Categories
компонентов, и у каждого есть разные отмеченные / непроверенные категории. Что бы тогда вернула Categories.getCheckedCategories()
функция?
Если вы хотите иметь общее состояние (отмеченные категории), я бы порекомендовал вам вытащить состояние из компонента. Например, сохраните его в родительском компоненте и передайте в качестве подпорки дочерним компонентам. Или используйте государственную библиотеку, такую как Redux. Вы также можете использовать контекст реагирования для управления общим состоянием.