Я хочу изменить номер страницы, возвращаемой API. Поэтому я использую API для получения фильмов и использую реагирующие хуки для этого. Я сделал отдельную функцию для извлечения из API с помощью useEffect, но я не знаю, как включить функциональность для изменения страницы, возвращаемой из API, с помощью ловушек реагирования.
Понятия не имею, как мне это сделать.
class ContactList extends React.Component {
state = {
contacts: [],
per: 2,
page: 1,
totalPages: null
}
componentWillMount() {
this.loadContacts()
}
loadContacts = () => {
const {per, page, contacts} = this.state;
const url = `https://student-example-api.herokuapp.com/v1/contacts.json?per=${per}&page=${page}`;
fetch(url)
.then(response => response.json())
.then(json => this.setState({
contacts: [...contacts, ...json.contacts]
}));
}
loadMore = () => {
this.setState((prevState) => ({
page: prevState.page + 1
}), this.loadContacts)
}
render() {
return (
<div>
<ul className="contacts">
{
this.state.contacts.map(contact => <li key={contact.id}>
<Contact {...contact} />
</li>)
}
</ul>
<a onClick={this.loadMore}>Load More</a>
</div>
);
}
}
Я только знаю, как заставить это работать в классическом подходе с классами. Поэтому, чтобы быть более понятным, я хочу преобразовать этот пример в ловушки.