React-to-print: как изменить состояние в onAfterPrint при закрытии окна печати

Я использую библиотеку реагирования на печать, и с ее помощью я хочу изменить состояние при закрытии окна печати.

Когда я нажимаю кнопку отмены, все работает нормально. Однако, если я нажму кнопку X (выход), произойдет сбой.

У меня есть следующий код.

<ReactToPrint
  trigger = {() => (
    ...
  )}
  content = {() => ...}
  onBeforePrint = {() => { this.setState({ printState: true}) }}
  onAfterPrint = {() => { this.setState({ printState: false }) }}  
  closeAfterPrint
/>

Вот сообщение об ошибке

Неперехваченное нарушение инварианта: превышена максимальная глубина обновления. Это может произойти, когда компонент неоднократно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений, чтобы предотвратить бесконечные циклы.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
1 144
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможно, это не так, но попробуйте использовать onAfterPrint = {() => this.handlePrintAfter()}

извините, это не сработало. также я обновил свой код выше

PHG 30.05.2019 18:28

Другие вопросы по теме