#javascript #reactjs #rest #loopbackjs #semantic-ui-react
#javascript #reactjs #остальное #loopbackjs #semantic-ui-react #семантический пользовательский интерфейс-react
Вопрос:
Я создаю разбивку на страницы для своего приложения, я новичок в ReactJS. Я использую API для извлечения данных страницы, но данные длинные, как список, я хочу показать их (10-10). Я реализовал логику для этого, к счастью, она показывает 10 записей на первой странице, когда я нажимаю 2
, ничего не происходит. Я хочу показать первые 10
записи на первой странице, но когда пользователь нажимает на 2
, он должен показывать 10-20
записи на второй странице (это означает, что при втором щелчке он должен пропустить первые 10 записей и включить 10-20 на второй странице) . Это будет сохраняться таким же образом, когда пользователь нажимает на next или 3
. Это возможно, потому что API встроен в loopback, а loopback предоставляет функциональность фильтрации. Я использовал ссылку filter in API только для первых 10 записей, которые отображаются на первой странице. Не мог бы кто-нибудь, пожалуйста, помочь мне, как реализовать эту логику. Спасибо
Код
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
Item: 5,
skip: 0
}
this.handleClick = this.handleClick.bind(this);
}
urlParams() {
return `http://localhost:3001/meetups?filter[limit]=${(this.state.Item)}amp;amp;filter[skip]=${this.state.skip}`
}
handleClick() {
this.setState({skip: this.state.skip 1})
}
render() {
return (
<div>
<a href={this.urlParams()}>Example link</a>
<pre>{this.urlParams()}</pre>
<button onClick={this.handleClick}>Change link</button>
</div>
)
}
}
ReactDOM.render(<Example/>, document.querySelector('div#my-example' ))
Ответ №1:
setState
функция является асинхронной. Это означает, что вы запускаете второй вызов api перед установкой нового идентификатора в состояние.
Попробуйте, передав функцию обратного вызова setState
методу:
this.setState({
id
}, () => this.getData())
Комментарии:
1. Теперь говорят, что 404 неверных запроса. Когда я нажимаю на
2
2. Это означает, что сервер не находит никакой конечной точки для обработки вашего запроса. Проверьте содержимое вашего HTTP-запроса.
3. На самом деле это работает сейчас, но кнопка «Назад» все еще не работает
4. Я хочу сказать, что когда я нажимаю на кнопку next, она работает нормально, она отображает данные следующей страницы, но когда я нажимаю на предыдущую кнопку, она также отображает данные следующей страницы. Я хочу, чтобы при нажатии пользователем кнопки next он мог отображать данные следующей страницы, когда пользователь нажимает на предыдущую кнопку, он отображает данные предыдущей страницы. Не могли бы вы, пожалуйста, помочь мне, как я могу создать этот тип разбивки на страницы. Я также поделюсь своим кодом или отредактирую текущий код вопроса.
5. Я обновил свой код, о котором идет речь, не могли бы вы, пожалуйста, просмотреть его? Если я допустил какую-то ошибку, пожалуйста, помогите мне решить это. Спасибо