React waddo udaw....

jennt

Well-known member
  • Sep 23, 2021
    2,960
    4,588
    113
    Abyss
    meeka rerender wenne ay kiyala kiyanna puluwanda? document eka overlap wenawa infinite loop ekakata gihin.

    ps: mama react danne nathooo.
    plz help ekak dennoo 🙏🙏🙏🙏🙏
    ada meeka danna oona. monawa karannada kiyala hithaganna baruwa inne.. 😢


    Code:
    import { useEffect, useRef, useState } from "react";
    import "./App.css";
    import WebViewer from "@pdftron/webviewer";
    import * as PDFNet from "@pdftron/pdfnet-node";
    
    function App() {
      const viewerDiv = useRef<HTMLDivElement>(null);
    
      useEffect(() => {
        WebViewer(
          {
            path: "lib",
            initialDoc: "blank-Pdf.pdf",
            fullAPI: true,
          },
          viewerDiv.current as HTMLDivElement,
        ).then((instance) => {
          // Move the enableFeatures call inside the then block
          instance.UI.enableFeatures([instance.UI.Feature.ContentEdit]);
    
          const { documentViewer, annotationManager } = instance.Core;
    
          documentViewer.addEventListener("documentLoaded", async () => {
            const doc = documentViewer.getDocument();
            const xfdfString = await annotationManager.exportAnnotations();
            const options = { xfdfString };
            const data = await doc.getFileData(options);
            const arr = new Uint8Array(data);
            const blob = new Blob([arr], { type: "application/pdf" });
    
            // Convert the Blob to a FormData object
            const formData = new FormData();
            // Change "pdf" to "file" to match the expected key on the server
            formData.append("file", blob, "filename.pdf");
    
            fetch("http://127.0.0.1:5000/upload", {
              method: "POST",
              body: formData,
            })
              .then((response) => response.blob())
              .then((blob) => {
                // Create a URL for the blob
                const url = URL.createObjectURL(blob);
                // Load the URL into the WebViewer
                instance.UI.loadDocument(url, {extension: 'pdf'});
              })
              .catch((error) => {
                console.error("Error sending PDF:", error);
              });
          });
        });
      }, []);
    
      return (
        <>
          <div className="w-full h-screen" ref={viewerDiv}></div>
        </>
      );
    }
    
    export default App;
     

    poopoo

    Well-known member
  • Nov 18, 2021
    5,766
    11,419
    113
    1709389126224.png


    JavaScript:
    useEffect(() => {
      // ... (WebViewer setup)
    
      const handleDocumentLoaded = async () => {
        // ... (Annotation handling, fetch, etc.)
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded); // *** Remove the listener after execution***
      };
    
      documentViewer.addEventListener("documentLoaded", handleDocumentLoaded);
    
      // Keep cleanup in useEffect
      return () => {
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded);
      };
    }, []);
     

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    48,487
    98,436
    113
    Empty array eka nisa Oka render wenawa eka digata.

    Pahala ref eka useeffect eken maru karama component ekama change wenawa. Ethakota aye parak useeffect trigger wenawa
     
    • Like
    Reactions: jennt

    jennt

    Well-known member
  • Sep 23, 2021
    2,960
    4,588
    113
    Abyss
    View attachment 225624

    JavaScript:
    useEffect(() => {
      // ... (WebViewer setup)
    
      const handleDocumentLoaded = async () => {
        // ... (Annotation handling, fetch, etc.)
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded); // *** Remove the listener after execution***
      };
    
      documentViewer.addEventListener("documentLoaded", handleDocumentLoaded);
    
      // Keep cleanup in useEffect
      return () => {
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded);
      };
    }, []);
    mee gpt4 da?
    Empty array eka nisa Oka render wenawa eka digata.

    Pahala ref eka useeffect eken maru karama component ekama change wenawa. Ethakota aye parak useeffect trigger wenawa
    try ekak deela balannam.

    thanks help ekata..
     

    jennt

    Well-known member
  • Sep 23, 2021
    2,960
    4,588
    113
    Abyss
    View attachment 225624

    JavaScript:
    useEffect(() => {
      // ... (WebViewer setup)
    
      const handleDocumentLoaded = async () => {
        // ... (Annotation handling, fetch, etc.)
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded); // *** Remove the listener after execution***
      };
    
      documentViewer.addEventListener("documentLoaded", handleDocumentLoaded);
    
      // Keep cleanup in useEffect
      return () => {
        instance.Core.documentViewer.removeEventListener("documentLoaded", handleDocumentLoaded);
      };
    }, []);
    adoo thanks aa. ube code eken awula harigiya.
    thawa poddak thiyenawa hadaganna
    try ekak dennam.

    thanks bn.🫂
     

    poopoo

    Well-known member
  • Nov 18, 2021
    5,766
    11,419
    113
    adoo thanks aa. ube code eken awula harigiya.
    thawa poddak thiyenawa hadaganna
    try ekak dennam.

    thanks bn.🫂
    අඩෝ මන් දන්න ලබ්බක් නෑ බන්
    ඇඩුණා මේ AI උට්ටගේ coding වලට:cry:
    කුඹුරක් ලෑස්ති කරගන්න
     
    • Like
    Reactions: jennt

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    48,487
    98,436
    113
    මං කිවෙ empty arry එක නිසා හැමපාරම render වෙනව කියන කතාව වැරදි කියල :)
    Ne eka thama oke case eka. Useref ekath Ekka Oka run wenawa. mulin 2 parak Oka run wenwa ita passe loop wenwa. Dev eke wene strict mode ain karama ok Eth solution eka nan useRef eka check karana eka. eka decenciey ekak widiyata dala null check karana eka.

    https://stackoverflow.com/questions...twice-even-if-an-empty-array-is-used-as-an-ar
     
    • Like
    Reactions: jennt

    හෙනයා

    Well-known member
  • May 23, 2014
    16,739
    16,846
    113
    Kottawa
    Ne eka thama oke case eka. Useref ekath Ekka Oka run wenawa. mulin 2 parak Oka run wenwa ita passe loop wenwa. Dev eke wene strict mode ain karama ok Eth solution eka nan useRef eka check karana eka. eka decenciey ekak widiyata dala null check karana eka.

    https://stackoverflow.com/questions...twice-even-if-an-empty-array-is-used-as-an-ar
    2 parak run wenne strict mode tag eka athule app eka run unoth.. Naththam useEffect with empty array run wenne eka parai.. Methana wenne ara lib eken document eka aaye aaye load wenawa react context eken eliye..

    Hariyata nikan kochchara deps dammath useEffect eka asse location.reload() ekak damma wage
     
    • Like
    Reactions: jennt and gamerlk

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    48,487
    98,436
    113
    2 parak run wenne strict mode tag eka athule app eka run unoth.. Naththam useEffect with empty array run wenne eka parai.. Methana wenne ara lib eken document eka aaye aaye load wenawa react context eken eliye..

    Hariyata nikan kochchara deps dammath useEffect eka asse location.reload() ekak damma wage
    Oka wisadana solution eka mokada
     
    • Like
    Reactions: jennt