Я не знаю, почему моя страница реакции пуста. Это начало происходить после того, как я сделал кнопку отправки, которая не обновляла страницу. Это последний файл, над которым я работал, и все компилируется правильно. Вот:
Это была последняя страница, над которой я работал, и именно здесь моя страница React начала становиться пустой. Просто дайте мне знать, если что-то не так с моим событием клика. Вот моя реагирующая пустая страница:
код:
import { Avatar } from '@mui/material';
import React from 'react';
import './messageSender.css';
function MessageSender() {
document.getElementById("submit").addEventListener("click", (event) => {
event.preventDefault();
});
return (
<div className = "messageSender">
<div className = "messageSender__top">
<Avatar />
<form>
<input
className = "messageSender__input"
placeholder = {`What's on your mind?`}
/>
<input placeholder = "Image URL (Optional)"/>
<button id = "submit" type = "submit">
Hidden Submit
</button>
</form>
</div>
<div className = "messageSender__bottom">
</div>
</div>
)
}
export default MessageSender;
Я не знаю, является ли это причиной того, что ваша страница пуста, но при каждом рендеринге вы добавляете прослушиватель событий. Это совсем не то, как вы должны использовать React. Либо добавьте прослушиватель внутри useEffect
(возвращая функцию очистки для удаления прослушивателя), либо просто назначьте его как встроенный прослушиватель для элемента React, который обрабатывает все это за вас.
@Robin Zigmond Я только что добавил код, который вам нужен, но я ничего не знаю о методе useEffect. Я попробую использовать его.
Пожалуйста, включите свой код не как скриншот.
В реакции вы можете назначить onSubmit непосредственно форме, предпочтительнее использовать синтетическое событие.
Синтетические события — это экземпляр React, через который проходят все обычные события в React.
React создал это, чтобы обеспечить согласованность для всех браузеров и повысить производительность, поскольку SyntheticEvent объединен в пул, а также напрямую гарантирует, что после размонтирования вашего компонента он удалит eventListener.
Итак, что я бы сделал, так это добавил бы onSubmit в форму и preventDefault там.
<form onSubmit = {(e) =>e.preventDefault()}></form>
Пустой экран, вероятно, потому что вы не включили свой eventListener в useEffect, поэтому он пытается добавитьEvent к нулевому значению.
Скриншоты бесполезны, так как мы не можем копировать и вставлять для проверки. Обновите свой вопрос, указав минимальный воспроизводимый пример, демонстрирующий проблему, в идеале запускаемый с помощью фрагментов стека (кнопка
[<>]
на панели инструментов; вот как это сделать)