微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

onBeforeGetContent 不使用 react-to-print 呈现

如何解决onBeforeGetContent 不使用 react-to-print 呈现

我使用 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 举报,一经查实,本站将立刻删除。