Tengo una pregunta para manejar correctamente mi situación en ReactJS (estoy comenzando con reaccionar). Entonces, en mi caso, recibo un objeto Json del servidor que contiene la lista de campos disponible para el usuario.

Entonces creé:

  • ScreenView: la pantalla para mostrar
  • DynamicComponent: el uso del componente en la página (dando los campos json).

en DynamicComponent tengo esto como Render:

render() { return ( {amp}lt;div{amp}gt; {amp}lt;Stack{amp}gt; {this.props.Fields.map((field) ={amp}gt; ( this.getField(field)))} {amp}lt;/Stack{amp}gt; {amp}lt;/div{amp}gt; ); } 

Y luego, el método getField () crea el componente correcto usando un caso de cambio basado en UIType de los campos json.

 getField(element) { let field; let items = this.fetchItems(element.Items); switch (element.UIType) { case 0: field = ({amp}lt;DropdownComponent label={element.Name} options={items} id={element.id} /{amp}gt;) break; case 1: field = ({amp}lt;TextFieldSimple label={element.Name} type='text' name={element.Text} id={element.id} /{amp}gt;) break; case 2: field = ({amp}lt;TextArea label={element.Name} type='text' name={element.Text} id={element.id} /{amp}gt;) break; case 3: field = ({amp}lt;CheckBoxSimple label={element.Name} enable='yes' disable='no' id={element.id} /{amp}gt;) break; default: field = ({amp}lt;h2{amp}gt;{this.props.Text}{amp}lt;/h2{amp}gt;) break; } return field; } 

Esto funciona muy bien en realidad. Pero mi problema es que, para algunos campos, tengo que cambiar sus datos en función de otro campo. Por ejemplo :

2 menús desplegables:

  • Categoría: creada con algunos valores
  • SubCategoría: creado vacío pero debe actualizarse utilizando el valor seleccionado del menú desplegable Categoría.

Este es un ejemplo con dos menús desplegables, pero dependiendo del usuario podría tener 3, 4 o 5 subcategorías.

Entonces, ¿alguien tiene una idea de cómo manejar esto adecuadamente? ¡Gracias de antemano por su ayuda! Ps: no encontré la respuesta en Internet (realmente no sé qué buscar …)

n7riasroc

es un nuevo contribuyente a este sitio. Tenga cuidado al pedir aclaraciones, comentarios y respuestas. Mira nuestro

Código de Conducta

.