UNPKG

kea-react

Version:

Componentes comunes de react

51 lines (43 loc) 1.75 kB
#edit Contiene los componentes que ayudar a la creacion de la edicion de una sola entidad ##Implementar un *form* Un *form* es un componente que modifica a un modelo de edición de una entidad. La unica función de un componente de esta categoria es mostrar los datos del modelo y reportar un evento cuando estos cambien. Este componente no tiene estado y expone al menos dos *props:* ``` /**Datos del modelo*/ model : TModel; /**Es llamado cuando alguna propiedad del modelo varia*/ onModelChanged: (newValue : TModel) => void; ``` Para los campos de un form puede utilizar los componentes de la carpeta `base/fields/` Recuerde no modificar los datos de `props.model` directamente ya que este objeto se considera inmutable. Para llamar al `onModelChanged` utilice el método `handleModelPropertyChanged` en el archivo `base/edit/form`. Este método se encarga de crear la copia inmutable del modelo ya que no debemos de modificarlo. Ejemplo de un form: ```jsx interface FormProps extends form.FormProps<Models.Customer> { /**True para volver la forma como solo lectura */ isReadOnly?: boolean; } /**Forma de edición de un cliente */ class ClienteForm extends React.Component<FormProps, {}> { handleModelPropertyChanged = (newValue: any, key: string) => form.handleModelPropertyChanged(newValue, key, this.props); render() { return ( <div className="row"> <Text label="Nombre" value={this.props.model.Nombre} onValueChanged={v => this.handleModelPropertyChanged(v, 'Nombre')} isReadOnly={this.props.isReadOnly} /> </div> ); } } ```