2017-10-23 12 views
0

サーバー側(Laravel)から取得している検証エラーを繰り返し処理する際に問題が発生しています。エラーレスポンスを取得し、状態エラー配列に割り当てることができました。しかし、私はconsole.logときに私は[obejectオブジェクト]を示す状態。だから私は配列を反復することができません。あなたは親切に助けてくれますか?内部割り当てられた応答データshow [オブジェクトオブジェクト] Native応答

constructor(props){ 
     super(props); 
     this.state={ 
      userName:'', 
      userEmail:'', 
      userPassword:'', 
      errors:[]    
     } 
    } 

axios({ 
      method: 'post', 
      url: API_URL+'signup', 
      data: { 
       username: userName, 
       email: userEmail, 
       password: userPassword 
      } 
     }) 
     .then((response) => { 
      var count = Object.keys(response.data.errors).length; 
      if (count > 0) { 
       console.log(response.data); 
       var newState = []; 
       newState.push(response.data); 
       this.setState({ 
        errors: newState 
       }) 
      } 

      console.log("error = " + this.state.errors); // console output: error = [object Object] 
     }) 
     .catch((error) => { 
      console.log(error); 
     }); 

//機能をレンダリング私は

render() { 
    <Errors errors={this.state.errors} /> 
} 

const Errors = (props) => { 
    return (
     <View>{props.errors.map((error, i) => <Text key={i}>{error}</Text>)}</View> 
    ); 
} 

答えて

2

はそれがnewState.push(response.data.errors)の代わりnewState.push(response.data)すべきではない検証エラーを表示するには、次のコードをしたのでしょうか。

また、JSONオブジェクトを印刷する場合は、JSON.stringifyを使用する必要があります。したがって、console.log(JSON.stringify(this.state.errors))は、JSONを読み取り可能な形で表示していました。string形式

+0

私は今更新しています:newState.push(JSON.stringify(response.data.errors));とconsole.log(this.state.errors)...それは正常に動作します。しかし、状態が更新されたときにはエラーが表示されません。 @Lingaraju E V – WahidSherief

+0

'AJAX'リクエストのサンプルレスポンスを表示できますか?そして 'newState.push(response.data)'を 'newState.push(response.data.errors)'に更新しましたか?私は 'response.data.errors'が' Array'であると仮定しています –

+0

これは私の最新のアップデートです:https://paste.laravel.io/cad3a4d1-767a-4aa0-8190-3239ec8ccb03 – WahidSherief

関連する問題