Есть ли способ отлаживать интерактивную реакцию

#reactjs

#реагирует на

Вопрос:

Я только что написал приложение для реагирования, и теперь мне трудно понять, что происходит. Журналов ошибок недостаточно.

Ошибка:

 Uncaught Error: Objects are not valid as a React child (found: object with keys {id, ref}). If you meant to render a collection of children, use an array instead.  

Я нигде не могу найти в своем коде, где я предоставил объект в качестве компонента.

Это также дает мне подсказку, что у объекта есть ключи {id, ref} , но проблема в том, что у меня также есть несколько объектов с этими ключами, возможно, поможет полный список ключей.

Комментарии:

1. Можете ли вы опубликовать все свое сообщение об ошибке? Он должен содержать стопку, которая может указать вам правильное направление.

2. Это хороший аргумент в пользу прогрессивного развития. Это в стороне: где-то в коде есть место, где было сделано ошибочное предположение. Трудно понять, с чего начать поиск, не зная ничего о коде, стиле кода и т. Д., Но нарушающий компонент должен быть виден в трассировке стека (или, по крайней мере, в его корне).

3. Как я уже сказал, журнала ошибок было недостаточно,

4. Вопрос, который вы выбрали в качестве решения, на самом деле не соответствует вашему вопросу с таким названием. Ваш вопрос в том, как найти первопричину этой проблемы, а не почему это происходит. У нас есть несколько дублирующих целей для реальной причины. Попытка найти, какая строка кода (именно так называется ваш вопрос) сильно отличается.

Ответ №1:

Такого рода ошибка возникает, когда вы пытаетесь визуализировать Object , например, если вы пытаетесь визуализировать file , имеющую структуру

 {  name: string,  size: number }  

и вы непосредственно визуализируете его как

 lt;divgt;{file}lt;/divgt;  

это приведет к ошибке, которую вы получаете

 Uncaught Error: Objects are not valid as a React child (found: object with keys {id, ref}). If you meant to render a collection of children, use an array instead.  

Это можно исправить, выполнив это следующим образом

 lt;divgt;{file.name} and {file.size}lt;/divgt;  

Комментарии:

1. Ваш комментарий действительно открыл мне глаза

2. Вы также можете отметить его как полезный ответ (зеленая галочка), чтобы помочь другим найти его как правильный ответ.

Ответ №2:

Есть ли способ отлаживать интерактивную реакцию

ДА. Для начала установите React Dev Tools из магазина вашего браузера. Это поможет вам пройти долгий путь в отладке.

Вы также можете использовать такие инструменты, как Web Storm, для отладки React.

Комментарии:

1. Я попробовал использовать инструменты разработки react, но это не показывает. Я использую «Компоненты».

2. @Дейв, что ты имеешь в виду под «это не показывает»?

3. Это ничего не показывает

4. @Дейв, я все еще не понимаю, что ты имеешь в виду.