2016-06-22 29 views
1

関数の戻り値を、どのようにして反応コンポーネントのプロパティに渡すことができますか?次の例の場合TypeError:props.columnsは定義されていませんがスローされます。関数の戻り値をプロパティとしてプロパティとして渡す方法

 <ReactDataGrid 
      columns={this.props.data['head'] && this.props.data['head']['vars'].map(function(heading) { 
       return {key: heading, name: heading, editable : true} 
      })} 
     rowGetter={this.rowGetter} /> 
+0

あなたは[何 'this.props.data [ '頭']'と 'this.props.dataを投稿できます'head'] ['vars'] 'が含まれています –

+1

例 - https://jsfiddle.net/69z2wepo/46531/ –

+0

this.props.data ['head']には以下が含まれています: { " vars ":[ " name " " provider "、 " consumer "、 " lifeCyclePhase "、 " protocol "、 "message"、 "interfaceConsumerContact" } ですが、それは数秒後に発生します。 –

答えて

1

ソリューションは、プロパティの外にはnullチェックを入れることです:

 if (this.props.data['head']) { 
     return (
      <ReactDataGrid 
      columns={this.props.data['head']['vars'].map(function(heading) { 
       return {key: heading, name: heading, editable : true} 
      })} 
      rowGetter={this.rowGetter} /> 
     ) 
     } else { 
     return (<span>Loading</span>) 
     } 
+0

@ alexander-t jsFiddleをチェックアウトすると、彼は本質的に同じことをしますが、if-ステートメント内の 'ReactDataGrid'コンポーネント全体をラップする代わりに、結果を変数に格納するだけです。 – Fizz

+0

その問題は、変数がnullでReactDataGridがそれを気に入らないことができるということです。 –

関連する問題