Estoy trabajando en una aplicación scalajs-react. Uno de los campos de la interfaz de usuario que tengo es un campo de entrada para texto de varias líneas y está asignado a una propiedad del objeto de estado. Definición de objeto de estado:
case class Person(name: String, addresses: Seq[String])Tengo el campo de interfaz de usuario correspondiente para direcciones como:
<.label("Addresses:", <.input(^.`type` := "text", ^.cls := "form-control", ^.value := person.addresses.mkString("\n"), ^.onChange ==> updateAddresses)) def updateAddresses(event: ReactEventFromInput): Callback = { val updatedAddresses = event.target.value.split("\\\\n").toSeq // based on some google search $.modState(prev => prev.copy(addresses = updatedAddresses)) }Pero parece que no funciona. No puedo agregar una entrada de nueva línea en la interfaz de usuario.
¿Cómo puede lograrse?
Tienes que tu textarea html de área de texto para la entrada de texto de varias líneas. (ver https://www.w3schools.com/tags/tag_textarea.asp )
Esto funciona:
<.label("Addresses:", <.textarea(^.`type` := "text", ^.cls := "form-control", ^.value := person.addresses.mkString("\n"), ^.onChange ==> updateAddresses))