#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. @Дейв, я все еще не понимаю, что ты имеешь в виду.