В моем классе я вставил this.feedRef= React.createRef()
строку в конструктор и добавил ref={this.feedRef}
свойство к элементу. Но, несмотря на это, я все еще не могу получить доступ к элементу с this.feedRef.current
, и он возвращает null
вместо фактического элемента.
class CreatePostCard extends React.Component {
state = { errors: [], files: [], fileUrls: [], text: "" };
handleSubmit = e => {
e.preventDefault();
validateSavedAccessToken(
token =>
createPost(token, this.state.text, this.state.files).then(response => {
this.setState({ files: [], fileUrls: [], text: "" });
this.props.onPostCreated();
}),
null
);
};
render() {
return <Card className="bg-secondary shadow">...</Card>;
}
}
class Feed extends React.Component {
constructor(props) {
super(props);
this.feedRef = React.createRef();
}
render() {
return (
<>
<div className="header bg-gradient-orange pb-8 pt-5 pt-md-8">
<Container fluid />
</div>
<Container className="mt--7" fluid>
<Container fluid />
<Row>
<Col xl="8">
<CreatePostCard
onPostCreated={() =>
alert(JSON.stringify(this.feedRef.current))
}
/>
//this.feedRef.current is null in the callback
<br />
<br />
<UserPostsCard ref={this.feedRef} />
</Col>
<Col>
<Announcements />
</Col>
</Row>
</Container>
</>
);
}
}