#javascript #reactjs
#javascript #reactjs
Вопрос:
Я пытаюсь получить список опций, компонент Addreess возвращает return adrress.features.find(place => place.id.match(region)).text
, в теге <p></p>
я получаю фактическую строку, но в параметрах object объект. Почему?
<select name="cities" id="cities">
{data.allContentfulBlogPost.edges.map((edge) => {
return (
<Adrress x={edge.node.location.lon} y={edge.node.location.lat} />
)
}
)}
</select>
Вывод : <select name="cities" id="cities">WarsawManchester</select>
если я изменю на
<option value=""><Adrress x={edge.node.location.lon} y={edge.node.location.lat} /></option>
Вывод :
<select name="cities" id="cities">
<option value="">[object Object]</option>
<option value="">[object Object]</option>
</select>
Комментарии:
1. HTML
<option>
принимает только текст (без дочерних элементов), а<select>
принимает<option>
только или<optgroup>
. Ваша разметка недопустима2. React 16.4 возвращает мне фактические данные, и у меня нет объекта object, и отображается строковое значение
3. Ну, для начала вам нужна действительная структура html. Почему вы пытаетесь отобразить компонент внутри
<option>
в первую очередь?
Ответ №1:
<option>
тег принимает только string
значение внутри него. Вы передаете выражение JSX, которое не является строкой, и оно отображается как [object объект] в браузере.
Комментарии:
1. React 16.4 возвращает фактические данные, но я использую 16.8 и сталкиваюсь с этой проблемой…