Все еще будучи новичком в React, я столкнулся со следующей проблемой: я создаю компонент следующим образом:
export const CSpiderWeb = (props: iSpiderWebProps) => {
const classes = useStyles();
const [drawingObject, setDrawingObject] = useState({} as iDrawingObject);
const _InitRaphael = (target : HTMLDivElement) => {
while (target.firstChild) {
target.removeChild(target.firstChild);
}
const workDrawingObject : iDrawingObject = {
width : target.offsetWidth,
height : target.offsetHeight,
centerX : target.offsetWidth / 2,
centerY : target.offsetHeight /2
}
workDrawingObject.paper = Raphael(target, workDrawingObject.width, workDrawingObject.height);
setDrawingObject(workDrawingObject);
}
var workRef = createRef<HTMLDivElement>();
_InitRaphael(workRef.current as HTMLDivElement);
return <div ref={workRef} className={classes.paperContainer}>{drawingObject.centerX}x{drawingObject.centerY}</div>
}
Что я пытаюсь сделать, это получить обработанный элемент DIVи передайте его методу _InitRaphael, но похоже, что он вызывается до визуализации элемента. Имеет смысл, но КАК это можно сделать. Я гуглил и гуглял, и иногда я пересекаю хук componentDidMount, но можно ли это использовать здесь, и если это так, то как?