我正在使用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'
}
}
答案 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
将返回一个新数组(不是字符串),其字符串值为green
或block
。