2016-04-09 20 views
2

を返されていないステートレスなコンポーネントに反応:は、マップ機能は、私はこのようになりますステートレスなコンポーネントのフォームヘルパーを持っている

import React from 'react'; 

export default(props) => { 
    var { attr, fieldAttribute } = props; 
    var label = attr.label; 
    var val = fieldAttribute.value; 
    var keys = []; 

    if(typeof val === 'object'){ 
     keys = Object.keys(val); 
    } 

    return (
     <div className="form-group"> 
      <label className="col-sm-2 control-label">{label}</label> 
      <div className="col-sm-10"> 
       {(() => { 
        if(typeof val === 'object'){ 
         keys.map(function(k){ 
          return (
           <p className="form-control-static"><span className="label label-default label-fixed">{k}</span> {val[k]}</p> 
          ) 
         }); 
        } 
        else{ 
         return (
          <p className="form-control-static">{val}</p> 
         ) 
        } 
       })()} 
      </div> 
     </div> 
    ) 
} 

「ヴァル」のデータが文字列またはJSONオブジェクト(検証)のいずれかです。私の問題はkeys.map()です...何らかの理由で何も返されません。

{ 
    foo: 'some value of foo', 
    bar: 'some value of bar 
} 

ノー成功に「val」を反復処理するためにさまざまな方法を試してみた:その場合の「ヴァル」で

データは次のようになります。私はここで何が欠けていますか?

ありがとうございました。

答えて

3

は、関数から結果を返す必要があるため、keys.mapreturnステートメントを追加してみます。、returnせずに、あなたの関数がundefinedを返し、あなたがどんな結果に

return keys.map(function(k){ 
    .. 
}); 
+0

OMG、どのような愚かな省略を取得しない理由です。..私がそのことを書いたとき、それは「遅かった」。 – Tomas

関連する問題