Почему хук React useRef выдает ошибку при использовании?

Ошибка
Это ошибка, которая отображается в браузере над веб-страницей.

Compiled with problems:X

ERROR


src\components\SignIn.js
  Line 5:21:  React Hook "useRef" is called in function "signin" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use"  react-hooks/rules-of-hooks

Search for the keywords to learn more about each error.

SignIn.js
Часть моего кода, использующая хук React useRef.

import React, { useRef } from 'react'
import { Card, Button, Form } from 'react-bootstrap'

export default function signin() {
    const userRef = useRef()

    return (
        <>
            <Card>
                <Card.Body>
                    <h2 className='text-center mb-4'>Magnet</h2>
                    <Form>
                        <Form.Group id = "username">
                            <Form.Label>Username</Form.Label>
                            <Form.Control type='text' ref = {userRef} required />
                        </Form.Group>
                    </Form>
                </Card.Body>
            </Card>
        </>
    )
}

Ваш ответ выглядит в сообщении об ошибке, которое вы опубликовали. Пожалуйста, прочтите его внимательно.

Brian Thompson 05.05.2022 20:41

@BrianThompson Да, спасибо за помощь, теперь я понимаю, что мне нужно делать.

hectorwithc 05.05.2022 20:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
44
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы не можете вызвать хук в обычной функции, он должен вызываться из хука или функционального компонента.

export default function signin() 

Приведенное выше соглашение об именах не относится ни к одному из них. Изменить на Signin. И действительно, сообщение об ошибке объясняет это.

@hectorwithc, вы должны принять один из ответов, которые помогли, это обычная практика здесь.

Giorgi Moniava 05.05.2022 20:47

Поскольку вы хорошо это объяснили, и где первый ответ, я приму ваш ответ.

hectorwithc 05.05.2022 20:52

У вас уже есть ответ в вашей ошибке

Line 5:21:  React Hook "useRef" is called in function "signin" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use"  react-hooks/rules-of-hooks

вы должны изменить имя компонента с помощью Signin

Другие вопросы по теме