Что заставляет мою страницу реакции быть пустой?

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

1-я страница: Что заставляет мою страницу реакции быть пустой?

2-я страница: Что заставляет мою страницу реакции быть пустой?

Это была последняя страница, над которой я работал, и именно здесь моя страница 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;

Скриншоты бесполезны, так как мы не можем копировать и вставлять для проверки. Обновите свой вопрос, указав минимальный воспроизводимый пример, демонстрирующий проблему, в идеале запускаемый с помощью фрагментов стека (кнопка [<>] на панели инструментов; вот как это сделать)

M.A Shahbazi 20.03.2022 11:24

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

Robin Zigmond 20.03.2022 12:09

@Robin Zigmond Я только что добавил код, который вам нужен, но я ничего не знаю о методе useEffect. Я попробую использовать его.

john fernado 20.03.2022 21:51
Поведение ключевого слова "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
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Пожалуйста, включите свой код не как скриншот.

В реакции вы можете назначить onSubmit непосредственно форме, предпочтительнее использовать синтетическое событие.

Синтетические события — это экземпляр React, через который проходят все обычные события в React.

React создал это, чтобы обеспечить согласованность для всех браузеров и повысить производительность, поскольку SyntheticEvent объединен в пул, а также напрямую гарантирует, что после размонтирования вашего компонента он удалит eventListener.

Итак, что я бы сделал, так это добавил бы onSubmit в форму и preventDefault там.

<form onSubmit = {(e) =>e.preventDefault()}></form>

Пустой экран, вероятно, потому что вы не включили свой eventListener в useEffect, поэтому он пытается добавитьEvent к нулевому значению.

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