объект Object в опции

#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 и сталкиваюсь с этой проблемой…