2016-12-11 6 views
1

私は以下のjsxコードを持っていますが、マッピング関数からいくつかのコードを取り出そうとしていますが、jsx構文でエラーが発生しました。ReactJSのJSX構文

{this.props.someData ? 
    <div className="container"> 
    <h3>Heading</h3> 
    <div className="block1"> 
     <button>one</button> 
     <buttontwo</button> 
    </div> 
    this.props.someData.map((response, index) => { 
     return ( 
     <div className="Block2"> 
      <div key={index}> 
      <span>{response.number}</span> 
      </div> 
     </div> 
     </div> 
    ); 
}) : ''} 
+0

答えの1つが正しい場合は、答えの横にある空のチェックマークをクリックして正しいとマークします。それ以外の場合は、質問を絞り込みます。 –

答えて

1

このようにそれを書く:何をやっている

{this.props.someData ? 
    <div className="container"> 
      <h3>Heading</h3> 
      <div className="block1"> 
       <button>one</button> 
       <buttontwo</button> 
      </div> 
      {this.props.someData.map((response, index) => { 
       return ( 
       <div className="Block2"> 
        <div key={index}> 
        <span>{response.number}</span> 
        </div> 
       </div> 
      )}) 
      } 
    </div> 
: <div/>} 

間違い:条件が真である場合は、JSXをレンダリングしているので

をHTML要素、{}内部の任意のJSコードをレンダリングするには、必要とされますその中にmapを使用しているのでmapの機能を{}の中に入れても動作します。

0

あなたのマップをラップする子供を追加することができます。{他にもいくつかのエラーがあります。あまりにも早くあなたのタグと中括弧を書いていました。さらに、空のJSX要素は、空の文字列ではなくnullを返す必要があります。 <buttontwo</button>

構文の強調表示を提供し、一貫性のあるスペーシングを使用し、常にエラーをチェックするためにeslintを使用すると、StackOverflowに来る必要がなくなり、ブロッキングする必要がなくなります構文の質問に関するあなたのプログラミング。

{this.props.someData ? 
    <div className="container"> 
     <h3>Heading</h3> 
     <div className="block1"> 
      <button>one</button> 
      <button>two</button> 
     </div> 
     { this.props.someData.map((response, index) => { 
      return (
       <div className="Block2"> 
        <div key={index}> 
         <span>{response.number}</span> 
        </div> 
       </div> 
      ); 
     }) } 
    </div> : null} 
0

私が正しくあなたの意味を取得する場合、私はこれはと思う:

{this.props.someData && 
    (<div className="container"> 
    <h3>Heading</h3> 
    <div className="block1"> 
     <button>one</button> 
     <buttontwo</button> 
    </div> 
    {this.props.someData.map((response, index) => { 
     return ( 
     <div className="Block2"> 
      <div key={index}> 
      <span>{response.number}</span> 
      </div> 
     </div> 
    ); 
    })} 
    </div>) 
} 

私はdocumentationの条件付きレンダリング部を見てすることをお勧めいたします思います。

関連する問題