Рубрики
Без рубрики

Общие ошибки реагирования

Мы все были в этой ситуации, когда мы написали какой-то код, и ошибка – это следующая «логическая» вещь. Это может быть боль, когда мы сталкиваемся с этими сценариями и можем быть еще более болезненными, если мы не …

Автор оригинала: John Kennedy.

Мы все были в этой ситуации, когда мы написали какой-то код, и ошибка – это следующая «логическая» вещь. Это может быть боль, когда мы сталкиваемся с этими сценариями и можем быть еще более болезненными, если мы не будем правильно реагировать на настройку для отладки.

Исправление этих проблем требует понимания проблемы, отслеживая проблематическую линию и ее закрепление. Иногда это не так просто, как ошибка может указывать на строку в одном файле, когда фактическая ошибка была из какого-то другого файла. Другое время эти ошибки загадочные, что делает его еще сложнее отследить.

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

С этим с пути давайте найдем эти ошибки.

  1. Вы сделали бездельник/функциональный компонент и не вернулись.
import React from "react";

const Error = () => {
  
Error
; }; export default Error;

Вы получаете следующую ошибку:

Сообщение об ошибке вполне интуитивно понятно, от изображения выше, вы можете видеть, что ошибка, запущенная по линии 19, которая действительно не является причиной ошибки, но точка, в которой была поймана ошибка. Исправление это так же простое добавление Возвращение в указанный функциональный компонент.

const Error = () => {
  return 
Error
; }; // OR const Error = () =>
Error
;
  1. Призывая метод обработчика событий, где требуется ссылка на метод.
export default class Error extends React.Component {
  state = {
    text: ""
  };

handleChange = ({ target: { value } }) => {
    this.setState({ text: value });
  };

render() {
    return (
      <>
        
      
    );
  }
}

Вы получаете ошибку:

Это может быть закреплено двумя способами:

  • Прохождение ссылки вместо того, чтобы вызвать метод, как так: Onchange = {это. HandleChange}
  • Используйте функцию стрелки жира: Onchange = {событие => это. HandleChange (событие)}
  1. Импорт компонента, который не был экспортирован и не использует тот же в Render () Отказ Это также может происходить в результате смешивания по умолчанию и названным импортом.

Исправление это так же просто, как экспортировать компонент и в случае смешанного импорта, убедитесь, что вы правильно импортируете компонент.

  1. У вас есть компонент, подключенный к redux, и вы вызываете действие/функцию из реквизита компонента, который вы уже не переходили на mapdispatchtopops () Отказ

  2. В React 16.8.0 были добавлены крючки. Когда вы вызываете установку крюка прямо на обработчик событий, как ниже:

const Hooks = props => {
  const [value, setValue] = useState("Awesome");

return (
    
Hooks are here and they are great!! No I meant{" "} {value}!

); };

Следует следующая ошибка:

Это может быть исправлено путем изменения OnClick = {SetValue («Фантастический»)} к onclick = {(() => setValue («Фантастическое»)} Отказ

  1. Иногда ошибка может быть сложной. Возьмите, например, ошибка ниже:

Существуют различные причины этой ошибки, некоторые уже перечислены выше. Помимо уже упомянутых причин, это может быть в результате обновления реагирования версии, скажем, переключатель от V15 до V16 и не обновляя устаревшие методы жизненного цикла.

  1. Другая ошибка это:
Warning: Functions are not valid as a React child.
This may happen if you return a Component instead of  from render.
Or maybe you meant to call this function rather than return it.

Сценарий для этой ошибки это:


Из кода вы бы быстро заметили, что Выберите Элемент был закрыт сразу после того, как Имя Атрибут, оставляющий другие атрибуты ( Value и Onchange ) Висит плюс есть еще один самоуверенный тег после Onchange атрибут. Удаление этих исправлений ошибки.

  1. Еще одна ошибка может быть ниже:

Этот код генерировал эту ошибку:

return(
   
    ...
);

Причина ошибки довольно проста, OnClick ожидает функции, но вместо этого получила тип строки. Быстрое исправление для этого вынимает окружающие цитаты и замена {} Как это:

    1. Посмотрите на следующий код:
    function App() {
      function handleRefresh() {
        window.location.reload();
      }
    return (
        

    Headlines

    ); }

    На первый взгляд, вы думаете, что нет ничего плохого в коде выше, но запуска, вы будете в бесконечном состоянии рендеринга. Почему? Ну, ваш элемент событий кнопки вызывает HandleRefresh () Метод напрямую, который звонит window.location.reload () Отказ Если вы действительно должны сделать это, то небольшая модификация вашего OnClick Обработчик делает работу. OnClick = {(() => HandleRefresh ()} исправляет это.

    Заключение

    Ошибки являются частью нашего развития сейчас, и мы видим их даже в коде, который работает. Что мы делаем, когда они найдены, это то, что имеет значение. У меня есть чувство, что у вас есть в точке, видели эти ошибки или все еще у них в этот момент в этот момент. Я надеюсь, что это поможет вам исправить те.

    Не стесняйтесь предложить дополнение к этому.

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