2017-10-16 18 views
-1

私はreactで作業していますが、この関数はclassNameに文字列を出力します。今すぐ文字列は返されません。私は警告を発することができます、そして、それは始まりますが、マップステートメント内では、 '緑色'または 'ブロック'文字列は戻って来ません。あなたは()の結果このネストされたif文から文字列が返されないのはなぜですか?

if(this.state.wordSubmitted){ 
     return submittedWords.map(elem=>{    
      if(elem.word.wordLocation.includes(id)){ 
       console.log('map if') 
       return 'green' 
      } 
      else{ 
       console.log('map else') 
       return 'block' 
      } 
     })    
    } 

をマップも返す必要があります

boardHiglighter(id){ 
     let submittedWords = this.state.submittedWords 
     if(this.state.currentBoardValue.includes(id)){ 
      return 'red' 
     } 
     if(this.state.wordSubmitted){ 
      submittedWords.map(elem=>{    
       if(elem.word.wordLocation.includes(id)){ 
        console.log('map if') 
        return 'green' 
       } 
       else{ 
        console.log('map else') 
        return 'block' 
       } 
      })    
     } 
     else{ 
      return 'block' 
     } 

    } 

答えて

1

** Array.map()は配列を返します。したがって、配列ではなく単なる単語を返す場合は、map()の結果の1つを選択するか、Array.reduce()を使用します。

1

mapの中のreturnは、新しい配列にプッシュされる値。 submittedWords.mapは、​​またはblockのいずれかの文字列値を持つ新しい配列(文字列ではない)を返します。

関連する問題