{"id":926,"date":"2018-09-12T07:44:38","date_gmt":"2018-09-12T07:44:38","guid":{"rendered":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?p=926"},"modified":"2018-09-12T07:50:37","modified_gmt":"2018-09-12T07:50:37","slug":"redux-form","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/","title":{"rendered":"Redux-Form: Pon orden a tus formularios"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-936\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg\" alt=\"\" width=\"1117\" height=\"839\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg 1117w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios-300x225.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios-768x577.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios-1024x769.jpg 1024w\" sizes=\"auto, (max-width: 1117px) 100vw, 1117px\" \/><\/p>\n<p>La utilizaci\u00f3n de una u otra <strong>librer\u00eda para la parte del Front-End<\/strong> de los desarrollos que hemos implementado, es algo que decide cada desarrollador. Esto nos proporciona una gran libertad, pero tambi\u00e9n una gran responsabilidad.\u00a0La elecci\u00f3n de una mala librer\u00eda es problema del desarrollador y por lo tanto, los errores o bugs que pueda tener, ser\u00e1n problema de quien utilice esta librer\u00eda. En este art\u00edculo vamos a ver si en nuestros desarrollos deber\u00edamos incluir <strong>Redux Form<\/strong>, cu\u00e1les son sus pros y sus contras.<\/p>\n<p><!--more--><\/p>\n<p>Desde hace m\u00e1s de un a\u00f1o seleccionamos<strong> ReactJS<\/strong> como la librer\u00eda utilizada para la parte Front-End de los desarrollos que hemos implementado. Una de sus principales ventajas es la posibilidad de elegir cada parte de nuestro desarrollo, ReactJS se encarga solo del renderizado del HTML.<\/p>\n<p>Hace una \u00fanica cosa y la hace muy bien. Junto con ReactJS hay una serie de librer\u00edas que complementan todo lo que nos proporciona un Framework Javascript: react-redux, react-router, react-thunks&#8230;<\/p>\n<h2><strong>Qu\u00e9 es Redux-Form<\/strong><\/h2>\n<p>Partiendo de est\u00e1 introducci\u00f3n, en nuestros desarrollos est\u00e1bamos teniendo un problema a nivel de mantenimiento del c\u00f3digo en todos los componentes React que se comportan como Formularios. Para implementar este componente, tenemos una serie de elementos en su estado que hay que controlar. Todo esto, hace que cuando el formulario tiene muchos campos y se requieren una serie de validaciones, el n\u00famero de l\u00edneas crece exponencialmente.<\/p>\n<p>Para intentar solucionar este problema, nos planteamos:<\/p>\n<ul>\n<li>Intentar incorporar una libreria de validaciones<\/li>\n<li>Crear componentes con dicha funcionalidad<\/li>\n<li>Incorporar React-Redux<\/li>\n<\/ul>\n<p>Descartamos incorporar una librer\u00eda de validaciones porque supon\u00eda a\u00f1adir una dependencia extra, y no nos terminaba de convencer su funcionamiento.<\/p>\n<p>La segunda opci\u00f3n (crear componente con dicha funcionalidad), nos pareci\u00f3 una muy buena opci\u00f3n debido a que nosotros ten\u00edamos todo el control del desarrollo, pero parec\u00eda que est\u00e1bamos reconstruyendo la rueda y a\u00f1adiendo una dificultad extra a nuestros desarrollos.<\/p>\n<h2><strong>Consideraciones previas<\/strong><\/h2>\n<p>En medio de esta situaci\u00f3n, probamos Redux-Form&#8230;pero antes de empezar a hablar sobre esta librer\u00eda vamos a hacer <strong>algunas aclaraciones<\/strong>:<\/p>\n<ul>\n<li>Est\u00e1 vinculado a la librer\u00eda react-redux, por lo que si no utilizas esta librer\u00eda para implementar una arquitectura \u00abFlux\u00bb, no la puedes utilizar (a no ser que hagas\u00a0 modificaciones).<\/li>\n<li>No es una librer\u00eda que nos sirva unos formularios predefinidos. El desarrollo de los formularios lo tenemos que hacer nosotros. Quiz\u00e1 el nombre lleve a equivocaci\u00f3n.<\/li>\n<li>Utiliza el patron Hight Order Componente (aka llamado Matriuska).<\/li>\n<li>Se intregra con la Store.<\/li>\n<\/ul>\n<h2><strong>Beneficios<\/strong><\/h2>\n<p>El gran beneficio que nos reporta esta librer\u00eda, es que <strong>pone orden al c\u00f3digo<\/strong> para utilizar en los formularios.\u00a0 Por un lado tenemos un componente <em>Formulario<\/em> que es el que vinculamos con nuestra store. Por otro lado tenemos una serie de componente para poder tener cada campo con una validaci\u00f3n. Y por si fuera poco, todas estas reglas se pueden compartir entre los mismos campos, por ejemplo tenemos una funci\u00f3n que nos valide un DNI y esta regla la podemos utilizar en m\u00e1s campos.<\/p>\n<p>El Flujo de nuestra aplicaci\u00f3n quedar\u00eda de la siguiente forma:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-931\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/redux-form-300x286.png\" alt=\"redux form flow\" width=\"300\" height=\"286\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/redux-form-300x286.png 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/redux-form-768x732.png 768w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/redux-form-1024x976.png 1024w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/redux-form.png 1060w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2><strong>Show me the code, talk (write) is cheap<\/strong><\/h2>\n<p>Para empezar, en\u00a0 nuestra soluci\u00f3n <strong>incorporaremos las librer\u00eda redux-form y sus tipos correspondientes<\/strong> (debido que durante el desarrollo hemos optado por usar\u00a0 Typescript en lugar de Javascript directamente). Para ello, en el package.json de nuestro proyecto a\u00f1adiremos estas dependencias:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n @types\/redux-form&quot;: &quot;^7.4.6&quot;,\r\n redux-form&quot;: &quot;^7.4.2&quot;\r\n<\/pre>\n<p>Otra forma de incorporar estas dependencias es\u00a0 instalando estos paquetes con npm y la opcion &#8211;save-dev.<\/p>\n<p>Una vez tenemos la soluci\u00f3n lista,\u00a0 <strong>creamos nuestro formulario<\/strong>. En primer lugar, vamos a crearnos un componente personalizado extendiendo la funcionalidad<em> Field<\/em> que nos proporciona la librer\u00eda en el que vamos a configurar, por un lado las reglas de validaci\u00f3n que va a tener el campo, la etiqueta, el mensaje de error de validaci\u00f3n. Un ejemplo ser\u00eda el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nconst email = (value:any) =&gt;\r\n  value &amp;&amp; !\/^&#x5B;A-Z0-9._%+-]+@&#x5B;A-Z0-9.-]+\\.&#x5B;A-Z]{2,4}$\/i.test(value)\r\n    ? 'Invalid email address'\r\n    : undefined\r\nconst alphaNumeric = (value:any) =&gt;\r\n  value &amp;&amp; \/&#x5B;^a-zA-Z0-9 ]\/i.test(value)\r\n    ? 'Only alphanumeric characters'\r\n    : undefined\r\nexport const phoneNumber = (value:any) =&gt;\r\n  value &amp;&amp; !\/^(0|&#x5B;1-9]&#x5B;0-9]{9})$\/i.test(value)\r\n    ? 'Invalid phone number, must be 10 digits'\r\n    : undefined\r\n\r\nconst renderField = (props:any) =&gt; (\r\n  &lt;div className=&quot;col-md-3 col-sm-3 aitscontactw3l-grid aitscontactw3l-grid-1&quot;&gt;\r\n    &lt;label className=&quot;fill fill-top&quot;&gt;{props.label}&lt;\/label&gt;\r\n      &lt;input className=&quot;fill&quot; {...props.input} placeholder={props.label} type={props.type} \/&gt;\r\n      {props.touched &amp;&amp;\r\n        ((props.error &amp;&amp; &lt;span&gt;{props.error}&lt;\/span&gt;) ||\r\n          (props.warning &amp;&amp; &lt;span&gt;{props.warning}&lt;\/span&gt;))}\r\n  &lt;\/div&gt;\r\n<\/pre>\n<p>Con este campo personalizado y con estas reglas de validaci\u00f3n, ya podemos empezar a crear el formulario. Para ello lo que vamos a utilizar es el componente <em>Field, <\/em>\u00a0que se comportar\u00e1 seg\u00fan nuestros criterios, es decir: qu\u00e9 reglas de validaci\u00f3n van a tener, cu\u00e1l es su dise\u00f1o, etc.<\/p>\n<p>Por otro lado en este componente tambi\u00e9n vamos a ver cual es el funcionamiento que queremos hacer una vez nuestro formulario sea v\u00e1lido. Un ejemplo de un formulario de suscripci\u00f3n a un rss podr\u00eda ser de la siguiente forma:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nonst ContactForm = (props:any) =&gt; {\r\n  const { handleSubmit } = props\r\n  return (\r\n    &lt;div className=&quot;aitscontactw3l&quot; id=&quot;aitscontactw3l&quot;&gt;\r\n      &lt;div className=&quot;container&quot;&gt;\r\n        &lt;h3&gt;Contacto&lt;\/h3&gt;\r\n   &lt;form onSubmit={handleSubmit}&gt;\r\n              &lt;Field  \r\n               type=&quot;email&quot;\r\n               name=&quot;Email&quot; \r\n               component={renderField} \r\n               label=&quot;Correo electronico&quot;\r\n               validate={&#x5B;required, email]}\r\n               warn={alphaNumeric} \/&gt;\r\n              &lt;input className=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Enviar&quot; \/&gt;\r\n                &lt;div className=&quot;clearfix&quot;\/&gt;\r\n        &lt;\/form&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n  )\r\n<\/pre>\n<p>Una vez ya tenemos el formulario, tenemos que registrarlo en la librer\u00eda para que se pueda utilizar como un elemento m\u00e1s dentro del flujo de la aplicaci\u00f3n.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport const Form = reduxForm({\r\n  \/\/ a unique name for the form\r\n  form: 'contact'\r\n})(ContactForm)\r\n<\/pre>\n<p>Como ya hemos comentado, el nombre de <em>form<\/em> debe de ser \u00fanico, es decir, si damos de alta dos formularios con el mismo identificador, la librer\u00eda no funciona.<\/p>\n<p>Uno de los aspectos que he esbozado al inicio del art\u00edculo, es que Redux-Form hace uso del patr\u00f3n <em>hight order component<\/em>. Esto lo podemos comprobar porque ahora mismo, hemos creado un componente y \u00e9ste va a estar incluido en un componente superior desde el cual se le van a pasar las props (en forma de Matriuska). Por lo que en nuestro desarrollo lo que vamos a realizar es crearnos un componente principal que ser\u00e1 el encargado de pasarle los m\u00e9todos de ejecuci\u00f3n al hijo. Un ejemplo del anterior ser\u00eda el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport class Contact extends React.Component&lt;{}, {}&gt; {\r\n  public submit = (values:any) =&gt; {\r\n    console.log(values)\r\n  }\r\n  public render() {\r\n    return &lt;Form onSubmit={this.submit} \/&gt;\r\n  }\r\n}\r\n<\/pre>\n<p>Por \u00faltimo para poder incluir Redux-Form en el contexto de Redux lo que tenemos que hacer es incluirlo dentro de los Reducers correspondiente. La librer\u00eda ya trae de serie un reducer \u00abformReducer\u00bb que es el que vamos a utilizar.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { reducer as formReducer } from 'redux-form'\r\nexport interface IStateReducer {\r\ncarrousel:ICarrouselItem&#x5B;],\r\nform:any\r\n}\r\n\r\nexport const state = combineReducers&lt;IStateReducer&gt;({\r\n  carrousel: carrouselReducer,\r\n  form: formReducer\r\n});\r\n<\/pre>\n<h2><strong>\u00bfA\u00fan hay m\u00e1s?<\/strong><\/h2>\n<p>La librer\u00eda aun tiene mucha m\u00e1s <strong>funcionalidad avanzada<\/strong>, por ejemplo puede hacernos agrupaciones de campos para aplicar validaciones. Tambi\u00e9n tiene funcionalidad para poder implementar un <em>Wizard<\/em>. Con esta herramienta hace todo de una forma m\u00e1s sencilla.<\/p>\n<h2><strong> Resumen <\/strong><\/h2>\n<p><strong>Redux Form<\/strong> es una librer\u00eda que nos facilita la posibilidad de establecer el orden de nuestra soluci\u00f3n para todos los componentes que se comporten de tipo <em>formulario<\/em>. Esto hace mucho m\u00e1s f\u00e1cil su posterior mantenimiento y evoluci\u00f3n.<\/p>\n<p>Otra de las grandes ventajas es que lo tenemos incorporado a Redux, lo que hace que todo siga el mismo patr\u00f3n Flux. En definitiva, a la hora de incorporar librer\u00edas de terceros siempre hay que pensarlo muy detenidamente porque nos puede ocasionar problemas futuros. Sin embargo, Redux Form es una librer\u00eda bastante buena que nos aporta numerosos beneficios y en el caso de formularios complejos, nos facilita mucho la vida\u00a0\ud83d\ude0a<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>La utilizaci\u00f3n de una u otra librer\u00eda para la parte del Front-End de los desarrollos que hemos implementado, es algo que decide cada desarrollador. Esto nos proporciona una gran libertad, pero tambi\u00e9n una gran responsabilidad.\u00a0La elecci\u00f3n de una mala librer\u00eda &hellip; <a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":936,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[98,99],"tags":[100,102,103,101],"class_list":["post-926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-reactjs","category-redux-form","tag-reactjs","tag-redux","tag-redux-form","tag-typescript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Redux-Form: Pon orden a tus formularios | ENCAMINA<\/title>\n<meta name=\"description\" content=\"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redux-Form: Pon orden a tus formularios\" \/>\n<meta property=\"og:description\" content=\"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/\" \/>\n<meta property=\"og:site_name\" content=\"Piensa en software, desarrolla en colores\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-12T07:44:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-12T07:50:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1117\" \/>\n\t<meta property=\"og:image:height\" content=\"839\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Adri\u00e1n D\u00edaz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Redux-Form: Pon orden a tus formularios\",\"datePublished\":\"2018-09-12T07:44:38+00:00\",\"dateModified\":\"2018-09-12T07:50:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/\"},\"wordCount\":1454,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/09\\\/Redux-Form-pon-orden-a-tus-formularios.jpg\",\"keywords\":[\"reactjs\",\"redux\",\"redux form\",\"typescript\"],\"articleSection\":[\"ReactJS\",\"Redux-Form\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/\",\"name\":\"Redux-Form: Pon orden a tus formularios | ENCAMINA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/09\\\/Redux-Form-pon-orden-a-tus-formularios.jpg\",\"datePublished\":\"2018-09-12T07:44:38+00:00\",\"dateModified\":\"2018-09-12T07:50:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/redux-form\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/09\\\/Redux-Form-pon-orden-a-tus-formularios.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/09\\\/Redux-Form-pon-orden-a-tus-formularios.jpg\",\"width\":1117,\"height\":839},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/\",\"name\":\"Piensa en software, desarrolla en colores\",\"description\":\"Las ventajas que te ofrece Microsoft Azure y el mundo.NET\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Redux-Form: Pon orden a tus formularios | ENCAMINA","description":"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/","og_locale":"es_ES","og_type":"article","og_title":"Redux-Form: Pon orden a tus formularios","og_description":"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.","og_url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/","og_site_name":"Piensa en software, desarrolla en colores","article_published_time":"2018-09-12T07:44:38+00:00","article_modified_time":"2018-09-12T07:50:37+00:00","og_image":[{"width":1117,"height":839,"url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg","type":"image\/jpeg"}],"author":"Adri\u00e1n D\u00edaz","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Redux-Form: Pon orden a tus formularios","datePublished":"2018-09-12T07:44:38+00:00","dateModified":"2018-09-12T07:50:37+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/"},"wordCount":1454,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg","keywords":["reactjs","redux","redux form","typescript"],"articleSection":["ReactJS","Redux-Form"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/","name":"Redux-Form: Pon orden a tus formularios | ENCAMINA","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg","datePublished":"2018-09-12T07:44:38+00:00","dateModified":"2018-09-12T07:50:37+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este art\u00edculo Adri\u00e1n D\u00edaz analiza si en nuestros desarrollos deber\u00edamos incluir Redux Form, cu\u00e1les son sus pros y sus contras.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/redux-form\/#primaryimage","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg","contentUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/09\/Redux-Form-pon-orden-a-tus-formularios.jpg","width":1117,"height":839},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/","name":"Piensa en software, desarrolla en colores","description":"Las ventajas que te ofrece Microsoft Azure y el mundo.NET","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/comments?post=926"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/926\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media\/936"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media?parent=926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/categories?post=926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/tags?post=926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}