Ошибка
Это ошибка, которая отображается в браузере над веб-страницей.
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>
</>
)
}
@BrianThompson Да, спасибо за помощь, теперь я понимаю, что мне нужно делать.
Вы не можете вызвать хук в обычной функции, он должен вызываться из хука или функционального компонента.
export default function signin()
Приведенное выше соглашение об именах не относится ни к одному из них. Изменить на Signin
.
И действительно, сообщение об ошибке объясняет это.
@hectorwithc, вы должны принять один из ответов, которые помогли, это обычная практика здесь.
Поскольку вы хорошо это объяснили, и где первый ответ, я приму ваш ответ.
У вас уже есть ответ в вашей ошибке
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
Ваш ответ выглядит в сообщении об ошибке, которое вы опубликовали. Пожалуйста, прочтите его внимательно.