Javascript 从REACTJS中的函数在渲染中显示结果
我想呈现文本“结果!”以及来自我的GetMaximum函数的最大类结果的名称Javascript 从REACTJS中的函数在渲染中显示结果,javascript,reactjs,Javascript,Reactjs,我想呈现文本“结果!”以及来自我的GetMaximum函数的最大类结果的名称 getLargest() { var largestLikeResult = null var largerstLikeNum= 0 if(this.props.results!=null){ //.map goes through every result this.props.results.map(i=&g
getLargest() {
var largestLikeResult = null
var largerstLikeNum= 0
if(this.props.results!=null){
//.map goes through every result
this.props.results.map(i=> {
console.log(i.name)
this.state.resultsRef.child(this.replaceAll("."," ",i.name)).once('value',function(snapshot) {
if(largerstLikeNum<snapshot.val().right)
{
console.log("new largest in town")
largerstLikeNum = snapshot.val().right
largestLikeResult= i.name
console.log(largestLikeResult)
}
})
})
return (
<div>
{largestLikeResult}
</div>
)
}
else {
return null
}
}
render(){
return (
<div>
Results!
<h1>{this.getLargest()}</h1>
</div>
)
}
}
export default DisplayResults
目前,只有结果!显示在第页,控制台中显示最大类结果的名称,而不是第页。我可以在渲染中添加任何快速更改以显示largestLikeResult的值吗
提前谢谢 对于快速更改,我认为如果您从map更改为forEach,它将很好地工作: this.props.results.forEachi=>{ 但我建议将GetMaximum函数重构为类似的内容:
getLargest() {
let largerstLikeNum = 0;
const { results } = this.props;
const { resultsRef } = this.state;
// Always return early
if (!results || !Array.isArray(results)) {
return null;
}
return (
<div>
{
results.map(i => {
return resultsRef.child(this.replaceAll('.', ' ', i.name)).once('value', snapshot => {
if (largerstLikeNum < snapshot.val().right) {
console.log('new largest in town');
largerstLikeNum = snapshot.val().right ;
return (
<div>{i.name}</div>
);
}
return null;
})
})
}
</div>
);
}