Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从REACTJS中的函数在渲染中显示结果_Javascript_Reactjs - Fatal编程技术网

Javascript 从REACTJS中的函数在渲染中显示结果

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

我想呈现文本“结果!”以及来自我的GetMaximum函数的最大类结果的名称

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