2017-08-11 3 views
0

私はフェッチして、この機能を持っている:なぜこの三項代入でnullが続くのですか?

getHistory(){ 
     console.log("Log antes del fetch de customer id"); 
     console.log(this.state.customer._id); 
     fetch(
      DOMAIN+'/api/orders/customer/'+this.state.customer._id, { 
       method: 'get', 
       dataType: 'json', 
       headers: { 
        'Accept': 'application/json', 
        'Content-Type': 'application/json', 
        'Authorization':'Bearer '+this.props.token 
       } 
      }) 
      .then((response) => 
      { 
       return response.json(); 
      }) 
      .then((responseData) => { 
       responseData.map(function (v) { 
        v.orderStatusChange = v.order ? v.order.orderStatusChange : null }) 
       this.setState({orders:responseData}) 
       console.log("Log del responseData"); 
       console.log(responseData); 

      }) 
      .catch(function() { 
       console.log("error"); 
      }); 
    } 

私はTHISのように見えるresponseData、とオブジェクトの配列を取得します。私はorderStatusChangeにアクセスして状態を取得したいと思います。

const HISTORY_TABLE_COLUMNS = [ 
    { 
     key: '_id', 
     label: 'Número de pedido' 
    }, { 
     key: 'created', 
     label: 'Fecha del pedido' 
    }, { 
     key: 'status', 
     label: 'Estado' 
    } 
]; 

は次のように見て:私は、彼らは印刷する必要があり、テーブルに直接配列のキーを入れて作成された注文のIDや日付などの配列から他の値を取得することができましたこの今:TABLE

しかし、ステータスがメインアレイ内の別のアレイ内にあることから、私は、関数のように、私はそれを得るためにそれをマッピングすることができると考えた:

responseData.map(function (v) { 
       v.orderStatusChange = v.order ? v.order.orderStatusChange : null }) 

しかしorderStatusChangeが値としてnullを取得し続けます。

どのようにステータス値を取得できますか?

EDIT:代わりにキャプチャのJSONオブジェクトの一部を追加:

(29) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] 
0: 
created:"2017-07-06T15:58:07.958Z" 
customer:"59561f3f1d178e1966142ad7" 
lastModified:"2017-07-06T15:58:07.958Z" 
orderList:[] 
orderStatusChange:Array(1) 
0:{status: "5", comments: "Creado en back antes de pagar", _id: "595e5e0f60fbf65149916b7c", created: "2017-07-06T15:58:07.958Z"} 
length:1 
__proto__:Array(0) 
shop:"59108159bc3fc645704ba508" 
totalAmount:4000 
__v:0 
_id:"595e5e0f60fbf65149916b7b" 
__proto__:Object 
+0

リンクされたイメージではなく、質問にresponseData JSONを追加してください。ありがとう – phuzi

+0

どのデータを表に表示しようとしていますか?あなたのjsonを見ると、あなたはresponseDataから 'created'と 'id'を表示していて、あなたのresponseDataには存在しないステータスが表示されます。あなたが配列であるorderStatusChangeから状態を取得しようとしているので、私はそれの中のすべてのレコードが異なるステータスを持つと仮定しています。 – Dev

+0

あなたが言ったように、responseDataから "id"と "created"を、orderStatusChange配列内に "status"を表示しようとします(そして、状況は可変です)。どうすればそれにアクセスできますか? – Calicorio

答えて

2

があなたのJSONを見てみると、あなたのオブジェクトにはorderプロパティがありません。 これは、常に三項演算子のfalseセクションに入る理由です。

あなたの質問には関係ありませんが、.mapには消費者が従わず、かなり役に立たないようです。

+0

'.map'をどのように構築すればよいですか?それを初めて使ったのです。コンシューマーIDはDOMAINに渡されます。 – Calicorio

+0

私はあなたがしたいことに依存しているのか分かりません。 –

+0

ステータス値を取得してテーブルに出力するだけです。 – Calicorio

関連する問題