Estoy tratando de imprimir la tabla ANTD usando el enlace ReactToPrint, todo parece funcionar bien, pero quiero mostrar algo de texto en la parte superior de la página antes de imprimir. significa que quiero mostrar algo de texto para fines de encabezado, cuando configuro la visibilidad del componente del encabezado como verdadera, no se imprime en el primer clic, se muestra en el segundo clic, pero quiero mostrar el encabezado en el primer clic y cuando imprimo o cancelar, el encabezado debe ocultarse.
Por favor, ayúdenme, presione el botón de imprimir dos veces para ver el resultado en el siguiente enlace.
Gracias de antemano
Cuando se llama a la función handlePrint , ref componentRef apunta a la versión anterior del componente. printHeaderVisible solo se vuelve verdadero en el momento del siguiente renderizado.
Puede intentar posponer la llamada de impresión hasta el próximo renderizado como este
const reactToPrintFunc = useReactToPrint({ content: () => componentRef.current, onBeforeGetContent: () => setprintHeaderVisible(true), onAfterPrint: () => setprintHeaderVisible(false) }); const handlePrint = () => { setTimeout(reactToPrintFunc, 0); };o haz lo que se recomienda en este problema
const handlePrint = useReactToPrint({ content: () => componentRef.current, onBeforeGetContent: () => { return new Promise((resolve) => { setprintHeaderVisible(true); resolve(); }); }, onAfterPrint: () => setprintHeaderVisible(false) });