#javascript #reactjs #typescript #user-interface
Вопрос:
Я использую приведенный ниже код для разбиения на страницы.
lt;ul className="pagination"gt; lt;li className="page-item"gt; lt;button className="page-link btn btn-success btn-block" onClick={prev} gt;Previouslt;/buttongt; lt;/ligt; lt;li className="page-item"gt; lt;button className="page-link btn btn-success btn-block " onClick={next}gt;Nextlt;/buttongt; lt;/ligt; lt;/ulgt; const next = () =gt; { if (page lt;= lastPage) { setPage(page 1); } } const prev = () =gt; { if (page gt; 1) { setPage(page - 1); } }
мое требование заключается в том, что когда данные first page
отображаются, prev
кнопка должна быть отключена. когда данные lastpage
отображаются, next
кнопка должна быть отключена.
Я имею в виду if(page==1)
отключать prev
и if(page==lastPage)
отключать next
.как я могу это сделать?
Ответ №1:
Вы можете условно отключить кнопку, используя выражение в disabled
свойстве кнопки. Например, для предыдущей кнопки вы можете сделать это,
lt;button disabled={page == 1} className="page-link btn btn-success btn-block" onClick={prev} gt;Previouslt;/buttongt;
Вы также можете выполнить то же самое для следующей кнопки. Просто измените выражение на page == lastPage
Но убедитесь, что page
свойство является состоянием компонента, чтобы React автоматически обновлял компонент при его изменении. Что касается вашего использования setPage
, я полагаю, что это уже так
Комментарии:
1. Спасибо , Джахир, твой ответ сработал. только исправление вместо отключения, оно отключено в react.
2. Моя вина. Я обновил ответ с правильным названием. Спасибо
Ответ №2:
Вы можете реализовать другие методы, такие как отключение кнопки при загрузке страницы или что-то в этом роде, но если вы хотите, чтобы все было просто, просто добавьте предупреждения.
ПРИМЕЧАНИЕ: У вас была ошибка в первом условии, потому что, если у вас 50 страниц, а фактическая страница равна 50, условие (page lt;= lastpage)
будет истинным, и вы отправите пользователя на страницу 51, которой не существует.
const next = () =gt; { if (page lt; lastPage) { setPage(page 1); } else { alert("This is the last page"); } } const prev = () =gt; { if (page gt; 1) { setPage(page - 1); } else { alert("This is the first page"); } }
lt;ul className="pagination"gt; lt;li className="page-item"gt; lt;button className="page-link btn btn-success btn-block" onClick={prev}gt;Previouslt;/buttongt; lt;/ligt; lt;li className="page-item"gt; lt;button className="page-link btn btn-success btn-block " onClick={next}gt;Nextlt;/buttongt; lt;/ligt; lt;/ulgt;