Я пытаюсь справиться с поднятием ссылки из дочернего компонента.
Мой родительский компонент:
import React, { Component, use } from "react";
import { Transformer } from "react-konva";
export default class SelectProvider extends Component {
constructor(props) {
super(props);
this.shapeRef = React.createRef();
this.trRef = React.createRef();
this.setRef = this.setRef.bind(this);
}
componentDidMount() {
console.log("mount");
}
setRef(ref) {
this.shapeRef = ref;
}
render() {
return (
<>
{this.props.children({
setRef: this.setRef,
})}
<Transformer ref={this.trRef} />
</>
);
}
}
И дочерний:
import React from "react";
import { Rect } from "react-konva";
import SelectProvider from "./TransformerProvider";
const RectangleShape = (props) => {
return (
<SelectProvider>
{({ setRef }) => (
<>
<Rect ref={setRef} {...props}></Rect>
</>
)}
</SelectProvider>
);
};
export default RectangleShape;
К сожалению, мой shapeRef.current
не определено во время componentDidMount, и я действительно не знаю, что вызывает такое поведение.
Я буду рад, если кто-то объяснит мне, почему это происходит. Спасибо.