Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 如果我们不小心发现';t使用';()';调用方法之后_Javascript_Reactjs - Fatal编程技术网

Javascript 如果我们不小心发现';t使用';()';调用方法之后

Javascript 如果我们不小心发现';t使用';()';调用方法之后,javascript,reactjs,Javascript,Reactjs,如果我们在调用函数后忘记放括号,比如 renderContent(){} 我们想把它称为div <div>{this.renderContent()}</div> {this.renderContent()} 如果我们忘了写()? 它不显示错误,在屏幕上不显示任何内容 当我们在呼叫后放入()时,它显示如果我遇到这样的问题,我如何知道我没有将()放入哪里 如果您需要更多信息,请让我知道在这种特定情况下,它将打印函数代码。例如,如果你有一个函数 renderConten

如果我们在调用函数后忘记放括号,比如

renderContent(){}
我们想把它称为
div

<div>{this.renderContent()}</div>
{this.renderContent()}
如果我们忘了写
()

它不显示错误,在屏幕上不显示任何内容
当我们在呼叫后放入
()
时,它显示如果我遇到这样的问题,我如何知道我没有将
()
放入哪里

如果您需要更多信息,请让我知道

在这种特定情况下,它将打印函数代码。例如,如果你有一个函数

renderContent = () => {
   console.log("hi");
   return <p>Hello world</p>;
}
函数的内容是什么

import React, { Component } from 'react';

class Content extends Component {
    renderContent = () => <h1>Hi</h1>
    render() {
        return (
            <div>{this.renderContent()}</div>
        )
    }
}

export default Content;
它在屏幕上没有显示任何内容,控制台中会出现错误:
警告:函数作为子函数无效。如果返回组件而不是从渲染返回组件,则可能会发生这种情况。或者您可能想调用此函数而不是返回它。


因为它应该返回函数的结构(如果在普通javascript中),但在React js中不允许这样做。

()
指示对函数的调用。如果没有
()
,您只得到了对函数的引用,这不是一个错误。“在屏幕上什么都不显示”应该足以表明您忘记了什么。从技术上讲,这不是一个错误,因此代码仍然可以正常工作。ReactJS中必须有一个保护,因为如果使用函数引用并将其转换为文本,无论是使用
+'
还是
toString()
,它都会显示函数的代码“我如何知道我没有放在哪里()”-通过测试代码并验证结果,以相同的方式检测任何类似的类型或逻辑错误。手动或使用自动测试工具。缺少
()
本身并不是一个错误,很多时候你不想包含这些。JavaScript本身不知道您应该做什么,只知道您做了什么。这取决于你去测试和验证。对。您还可以说,
renderContent
Function
类型的变量。与任何变量一样,如果省略括号,它将只呈现其值/内容(在本例中为函数的定义)。但是当你包含括号时,它就变成了一个表达式,它将执行函数并产生函数的返回值。是的,这是一个更好的解释方法。谢谢你的指点。
import React, { Component } from 'react';

class Content extends Component {
    renderContent = () => <h1>Hi</h1>
    render() {
        return (
            <div>{this.renderContent()}</div>
        )
    }
}

export default Content;
import React, { Component } from 'react';

class Content extends Component {
    renderContent = () => <h1>Hi</h1>
    render() {
        return (
            <div>{this.renderContent}</div>
        )
    }
}

export default Content;