为什么不从此嵌套if语句返回字符串?

时间:2017-10-16 02:00:34

标签: javascript reactjs

我正在使用react,这个函数将一个字符串输出到className。现在没有返回任何字符串。我可以发出警报,它会触发,但在地图声明中,没有“绿色”或“阻止”字符串返回。

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'
        }

    }

2 个答案:

答案 0 :(得分:1)

你还必须返回map()的结果

    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'
            }
        })            
    }

** Array.map()返回Array。因此,如果您只想返回一个单词而不是数组,请选择map()的结果之一或使用Array.reduce()

答案 1 :(得分:1)

map中的return只返回将被推送到新数组的值。 submittedWords.map将返回一个新数组(不是字符串),其字符串值为greenblock