#reactjs #scala #scalajs-react
Вопрос:
Я изучаю scalajs-реакцию. У меня есть случай использования, в котором, когда пользователь нажимает на кнопку, я получаю данные из бэкенда. Данные — это список объектов. Мне нужно отобразить каждый объект в определенной форме. Так что, по сути, я предполагаю, что это будет серия дивов.
Итак, как мне повторить набор пользовательских объектов и заполнить пользовательский интерфейс их содержимым в scalajs-react?
Поэтому я попытался поместить код ниже в существующий div:
<.div(
this.employees.map( employee =>
<.form(
<.label("Name of the employee:",
<.input(^.`type` := "text", ^.cls := "form-control",
^.value := employee.name, ^.onChange ==> updateName)),
<.br,
<.label("Addresses:",
<.input(^.`type` := "textarea", ^.rows := 100, ^.cols := 20,^.cls := "form-control",
^.value := employee.addresses.mkString(","), ^.onChange ==> updateAddresses))
)
)
)
Но это приводит к ошибке: Требуется Tagmod, найден Seq[Тег[html.форма]]
Комментарии:
1. Простой ответ заключается в том, что вы вызываете
map
Seq
и создаете новый компонент для каждого значения, а затем помещаете его в содержащий компонент. Но, не зная более подробных сведений, трудно быть более конкретным.
Ответ №1:
Похоже, вам нужно добавить .toTagMod
после map
. См. раздел Коллекции в документации по VDOM
Комментарии:
1. Я использовал toVdomArray, и он работает так, как ожидалось.