embiem / react-canvas-draw

React Component for drawing in canvas
https://embiem.github.io/react-canvas-draw/
MIT License
892 stars 315 forks source link

"Cannot read property loadSaveData of null " OR"Cannot read property 'current' of undefined " #106

Closed priyanka-zotalabs closed 2 years ago

priyanka-zotalabs commented 3 years ago

Code :-

import React, { useState, useEffect,useRef, } from "react"; import {Modal,Row,Col,Form,} from "react-bootstrap";

import {Paper, makeStyles,Button,} from "@material-ui/core"; import CanvasDraw from "react-canvas-draw";

const Homework = (props) => {

const valueRef2 = useRef( Array.from({ length: 50 }, () => React.createRef()) );

console.log("show doodle", valueRef2, valueRef2.current);

// getting required data in homework from previouse component const [homeworkDatasss1, setHomeworkDatasss1] = useState(homework);

useEffect(() => { if (homeworkDatasss1) { homeworkDatasss1.forEach((element) => { console.log("element", element); if (element.status == "checked") { element.submittedHomework.submittedHomeworkUrls.forEach((test2) => { console.log("student data", test2);

// getting all data of test2.index & test2.doodle console.log("doodle data",test2.index,test2.doodle)

          valueRef2.current[test2.index].current.loadSaveData(test2.doodle);
        });
      }
    });

// some code to update other states } }, [homeworkDatasss1]);

return (

{homeworkDatasss1 ? ( {homeworkDatasss1.length > 0 && homeworkDatasss1.map((course, j) => (
{course.submittedHomework.submittedHomeworkUrls.map((test, j) => (
{ valueRef2.current[j]!== undefined && valueRef2.current[j]!== null && valueRef2.current[j]? (
):( null ) }
))}
); }; export default Homework; ![2020-12-21 (2)](https://user-images.githubusercontent.com/65708273/102751335-8a9e1e00-438d-11eb-9876-055bae28a482.png) In this code test2.doodle is string of canvas data getting saved in other component "const data = firstCanvas.current[Index].current.getSaveData()" .I want to dedocode this string to show doodle on images using array ref , want to save in such a way -> valueRef2.current[test2.index].current.loadSaveData(test2.doodle); but getting errors like "Cannot read property loadSaveData of null " OR"Cannot read property 'current' of undefined " Is anything i am doing wrong Or Other way to do it /solve it .
priyanka-zotalabs commented 3 years ago

@GuillaumeAmat @laeckerv @vaneavasco