问题描述
我使用 react-to-print,但遇到了问题。执行 onBeforeGetContent 时不要更新此组件。我的 var num 从不取值,但在控制台中显示“是”和 API 收到的数字。 我需要打印一张带有类型和编号的票。 这是我的代码。 PD:我是 React 新手。
export default function AdmisionComponent() {
const classes = useStyles();
const [num,setNum] = useState("");
const componentRef = useRef();
const handlePrint = useReactToPrint({
//onBeforePrint: () => promise(),onBeforeGetContent: () => promise(),content: () => componentRef.current,});
const promise = () =>{ new Promise((resolve,reject) => {
console.log('init');
axios.post("/admision").then(response =>{
setNum(response.data);
console.log(response.data);
resolve(console.log("yes"));
}).catch(response =>{
reject(console.log("no"));
});
})
const createT = () =>{
axios.post("/admision").then(response =>{
setNum(response.data);
console.log(response.data);
}).catch(null);
}};
return (
<div className={classes.root}>
<div className={classes.p}>
<Print ref={componentRef} typeT= {"A"} num={num}/>
</div>
<Link to= "/">
<ButtonBase
focusRipple
key="Admision"
className={classes.image}
onClick={handlePrint}
//onClick={() => createT()}
focusVisibleClassName={classes.focusVisible}
>
<span
className={classes.imageSrc}
style={{
backgroundImage: `url(${boton_tramites})`,}}
/>
<span className={classes.imageButton}>
<Typography
component="span"
variant="subtitle1"
color="inherit"
className={classes.imageTitle}
>
ADMISIÓN
<span className={classes.imageMarked} />
</Typography>
</span>
</ButtonBase>
</Link>
</div>
);
}
onBeforePrint 和 onBeforeGetContent 运行 promise 并更改状态,但不呈现 Print 组件。就我而言,我认为我应该使用 onBeforeGetContent。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)