Это потому, что ваша функция getPosts
неправильно привязана к вашему компоненту, поэтому this
относится к функции getPosts
, а не к вашему компоненту. Поскольку он не имеет какого-либо свойства состояния, вы получите сообщение об ошибке.
Есть два способа сделать это, либо связать в конструкторе:
class App extends Component {
constructor(props){
super(props)
this.state = {
listState: 'top',
allPosts: [],
lastVisiblePost: null
}
this.getPosts = this.getPosts.bind(this)
}
}
Или вы используете transform-class-properties
плагин babel, и затем вы можете объявить методы компонентов как функции стрелок, которые не предоставляют свои this
, поэтому ключевое слово this
будет автоматически ссылаться на ваш компонент:
getPosts = async () => {
//your code
}