javascript - Axios post method React. State Redux not update -


i have problem state in redux axios request

case 'register_user':{    var userdata = {username: action.payload.username, password : action.payload.password};    axios({     method: 'post',     url: 'php/register.php',     contenttype: "application/json; charset=utf-8",     datatype: "json",     data: userdata   }).then(function(response) {     state.error = response.data.errors;     state.success = response.data.success; });     return {state};     break;   }//end register_user 

default state.error, state.success empty array. after first click state.error still empty array because axois didn't finish request. after 2nd click fine.

and here have problem props:

{this.props.error.length>0? <div classname="alert alert-danger">{this.props.error[0]}</div>: ''} 

and store:

@connect((store)=>{   return{     error: store.app.error,     success: store.app.success,   } }) 

do u know how can render component new props after axios method post finished.

i think have written code reducer, api call should done inside action dispacher. after api called have dispatch data reducer. in reducer should assign data, no api calls inside reducer.

for e.g.

action dispatcher

export function apidispatch(data) {     return{         type:'api_data_recd',                         data:data     } }  export function callapi(){     return function(dispatch){          axios({             method: 'post',             url: 'php/register.php',             contenttype: "application/json; charset=utf-8",             datatype: "json",             data: userdata           }).then(function(response) {             state.error = response.data.errors;             state.success = response.data.success;             dispatch(apidispatch(state))         });      } } 

reducer

case 'api_data_recd':     {            // data action.data     } 

Comments

Popular posts from this blog

networking - Vagrant-provisioned VirtualBox VM is not reachable from Ubuntu host -

c# - ASP.NET Core - There is already an object named 'AspNetRoles' in the database -

ruby on rails - ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true -