<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Patryk Orlik</title>
    <description>The latest articles on DEV Community by Patryk Orlik (@patrishio).</description>
    <link>https://dev.to/patrishio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F95388%2Fbfc1fa56-ba1d-4360-a11f-520ca7b8000f.png</url>
      <title>DEV Community: Patryk Orlik</title>
      <link>https://dev.to/patrishio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/patrishio"/>
    <language>en</language>
    <item>
      <title>React-Rails app - How to validate uniqueness?</title>
      <dc:creator>Patryk Orlik</dc:creator>
      <pubDate>Fri, 24 Aug 2018 09:40:43 +0000</pubDate>
      <link>https://dev.to/patrishio/react-rails-app---how-to-validate-uniqueness-1g3e</link>
      <guid>https://dev.to/patrishio/react-rails-app---how-to-validate-uniqueness-1g3e</guid>
      <description>&lt;p&gt;Hi there, &lt;br&gt;
This is my first post. Please let m know if I'm doing something wrong. I am Ruby on Rails deveoloper which start to useing React form Model View and Ract-Native. &lt;/p&gt;

&lt;p&gt;I am building app to mangaing warehouse. It is already done and in production (created with Rails, Turbolinks and jQery). Now I would like to change this app to React single page app with react-native mobile version.&lt;/p&gt;

&lt;p&gt;I knew basics about, React, Redux, React-Native now and I started changing process. &lt;/p&gt;

&lt;p&gt;I have simple react-rails app created. I created a form in react and db in rails and I would like to crate record only if his name is unique. &lt;/p&gt;

&lt;p&gt;I connect with rails through axios and when I try to create record with not unique name, axios send back to react action validation error.&lt;/p&gt;

&lt;p&gt;// ACTION&lt;br&gt;
export const startAddingLocation = ( name ) =&amp;gt; {  &lt;/p&gt;

&lt;p&gt;return(dispatch) =&amp;gt; {&lt;br&gt;&lt;br&gt;
    const location = { name }&lt;br&gt;&lt;br&gt;
    return axios.post( '/api/locations', { location }) &lt;br&gt;
      .then(response =&amp;gt; {&lt;br&gt;
        if(response.data['status'] === 'SUCCESS'){&lt;br&gt;
          const id = response.data.data.id;&lt;br&gt;&lt;br&gt;
          const created_at = response.data.data.created_at;&lt;br&gt;&lt;br&gt;
          dispatch(addLocation({id, ...location, created_at}));&lt;br&gt;&lt;br&gt;
        }&lt;br&gt;
        else{&lt;br&gt;
          dispatch(nameChangedError(name, response.data['message']));&lt;br&gt;
        } &lt;br&gt;
      }).catch(error =&amp;gt; {&lt;br&gt;
        dispatch(nameChangedError(name, error+"Cannot save in DB"))&lt;br&gt;
      });&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;I need to find a way to not redirect from from when have a validation error. What is the best route to do this? I tried to redirect when action nameChangedError fill up error in redux but this is asynch action and when when I am checking error in component it still empty. Sould I redirect somehow from action?&lt;/p&gt;

&lt;p&gt;//COMPONENT ON SUBMIT&lt;br&gt;
  onButtonPress() {&lt;br&gt;&lt;br&gt;
    const { name, error } = this.props;&lt;br&gt;&lt;br&gt;
    if(name &amp;amp;&amp;amp; name.length &amp;lt; 30){&lt;br&gt;&lt;br&gt;
      this.props.startAddingLocation(name);&lt;br&gt;&lt;br&gt;
       if(!error){&lt;br&gt;
          this.props.history.push('/locations');&lt;br&gt;
       }&lt;br&gt;
    }else{&lt;br&gt;
      this.props.nameChangedError(name, "Incorrect value")&lt;br&gt;
    }&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>react</category>
      <category>rails</category>
      <category>validation</category>
      <category>help</category>
    </item>
  </channel>
</rss>
