Я получил ошибку при использовании React.useRef внутри компонента функции реакции

Я использую React.useRef внутри функционального компонента реакции, я получаю сообщение об ошибке до того, как использовал его внутри компонента класса, и теперь я заменил его на функциональный компонент реакции, и я все еще получаю это сообщение об ошибке ниже.

React Hook «React.useRef» вызывается в функции «landingPage», которая не является ни компонентом функции React, ни пользовательской функцией React Hook.

Не могли бы вы объяснить, почему я все еще получаю это сообщение после помещения в функциональный компонент. Вот мой код

import React from "react";
import Modal from "./Modal";

function landingPage() {
  const modalRef = React.useRef();

  return (
    <div className="landingPage">
      <div className="container">
        <div className="landingPage__row">
          <div className="playvideo-wrapper">
            <div className="playvideo-text">See us in action</div>
            <div className="playvideo-button" onClick={openModal}>
              <p>Play Video</p>
            </div>
            <Modal ref={modalRef}>
              <iframe
                src="https://www.youtube.com/embed/SQ8CvT25_Dg?autoplay=1"
                frameborder="0"
                allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
                allowfullscreen
              ></iframe>
            </Modal>
          </div>
        </div>
      </div>
    </div>
  );
}

export default landingPage;

и вот мой код в app.js

import React, { Component } from "react";
import LandingPage from "./LandingPage";

export default class App extends Component {
  render() {
    return (
      <div className="main">
        <LandingPage />
      </div>
    );
  }
}


person Code Ninja    schedule 01.03.2020    source источник
comment
Я думаю, вам нужно использовать forwardRef здесь, в вашем модальном компоненте. reactjs.org/docs/forwarding-refs.html   -  person    schedule 02.03.2020


Ответы (1)


Компоненты React ДОЛЖНЫ начинаться с заглавной буквы. Измените это:

function landingPage() {...

к этому:

function LandingPage() {...
person Jayce444    schedule 01.03.2020
comment
В противном случае React считает, что это обычная функция Javascript, и в них нельзя использовать хуки. - person Jayce444; 02.03.2020
comment
@CodeNinja, не беспокойтесь. Если это решит для вас все, отметьте это как правильный ответ :) - person Jayce444; 02.03.2020