如何在React / Jsx中的渲染器中调用函数

JavaScript React.js

小卤蛋

2020-04-07

我想在一些嵌入式html中调用一个函数。我尝试了以下操作,但未调用该函数。这是在render方法内调用函数的错误方法吗?

import React, { Component, PropTypes } from 'react';

export default class PatientTable extends Component {
      constructor(props) {
        super(props);
        this.state = { 
         checking:false
      };
        this.renderIcon = this.renderIcon.bind(this);
  }

  renderIcon(){
    console.log("came here")
    return(
      <div>Function called</div>
    )
  }

  render() {

   return (
       <div className="patient-container">

       {this.renderIcon}      

      </div>
   );
 }
}

第4040篇《如何在React / Jsx中的渲染器中调用函数》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
西里Near 2020.04.07

解决的方法是接受的答案。但是,如果有人想知道它为什么起作用以及为什么SO问题中的实现不起作用,

首先,函数是JavaScript中的一流对象这意味着它们像其他任何变量一样被对待。函数可以作为参数传递给其他函数,可以由另一个函数返回,也可以作为值分配给变量。在这里阅读更多

因此,我们使用该变量在末尾添加括号() 调用该函数

一件事,如果您有一个返回函数的函数,而您只需要调用该返回的函数,则在调用外部函数()()时,您可能会遇到双重假名。

斯丁 2020.04.07

要调用该函数,您必须添加 ()

{this.renderIcon()}   

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android