Почему ref.current является нулевым, несмотря на то, что refig определен и назначен в классе? - PullRequest
0 голосов
/ 22 марта 2020

В моем классе я вставил 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>
      </>
    );
  }
}
...