当前位置: 首页 > 知识库问答 >
问题:

如何在JSX中使用函数

通俊发
2023-03-14

我目前正在阅读React官方网站,在那里我遇到了这个问题。React官方网站声明我们可以在JSX中使用函数代码。因此,我尝试了以下代码,但不起作用。

ABCD类扩展了React。组件{

render() {
    return (
        <div>
            <p>
                {() => <div>Hello World </div>}
            </p>
        </div>
    );
}

}

我知道,我知道,你们中的一些人可能会说,看看React网站上给出的例子。我看到了,官网上的例子涉及到外部功能。我只是想知道我们能否独立使用JSX内部的函数。

有关更多信息,请参阅此链接:https://reactjs.org/docs/jsx-in-depth.html

共有3个答案

羊舌青青
2023-03-14

您可以尝试将其作为中间调用的函数调用

render() {
    return (
        <div>
            <p>
                {(() => <div>Hello World </div>)()}
            </p>
        </div>
    );
}
申高卓
2023-03-14

只需调用一个返回JSX的函数。例如:

class FooComp extends React.Component {
    someFunction() {
        return (<div>Hello World!</div>);
    }

    render() {
        return (
            <div>
                    <p>
                        {this.someFunction()}
                    </p>
            </div>
        );
    }
}
东门新立
2023-03-14

因为我觉得你想做的是错误的。

对象或函数不可由JSX解析

如果你只是尝试

render() {
    return (
        <div>
            <p>
                {() => <div>Hello World </div>}
            </p>
        </div>
    );
}

您正在尝试插值或返回一个不可接受为表示节点的函数。它应该是jsx可以解析的东西。对象或函数不能由JSX解析,它们应该由Javascript引擎解析。

您可以做的是定义您的方法并立即调用它,以便函数(iife函数)返回可以由JSX解析的内容。

差不多

render() {
    return (
        <div>
            <p>
                {(() => {<div>Hello World </div>})()}
            </p>
        </div>
    );
}

希望你明白我的意思。返回JSX可以解析的东西。

 类似资料:
  • 如何在组件返回中使用promise函数,如下所示: 因此,结果将是: 即使我在同一个组件中有几个promise,我也必须使用?

  • 问题内容: 我想在一些嵌入式html中调用一个函数。我尝试了以下操作,但未调用该函数。这是在render方法中调用函数的错误方法吗? 问题答案: 要调用该函数,您必须添加

  • 问题内容: 我无法实现有两个嵌套: 这给出一个。 您如何在JSX中嵌套调用? 问题答案: 您需要将其包装在一个元素内。 像这样(由于表元素的规则,我添加了一个额外的东西): 运行示例(无表):

  • 问题内容: 强制转换为文件时,编译器将其假定为JSX,例如: 给出一个错误 JSX元素类型’HtmlInputElement’不是JSX元素的构造函数 如何将TypeScript转换为文件? 问题答案: 该运算符被引入TypeScript 1.6,以替换文件中的强制类型转换,例如: TypeScript Wiki解释了1.6的更改: 它使新运算符成为默认的转换方式(消除了JSX表达式与TypeSc

  • 我在JavaScript中有一个对象数组,我想循环遍历这些对象并返回一些JSX,其中包含引导类,这样每一行中总是显示2列。 根据我对其他语言和模板引擎的经验,这非常简单:只需创建一个开头和结尾的标记,其中包含一个类,然后使用模板引擎,循环并渲染每个对象,直到循环的计数器为,您可以动态地结束该角色并开始一个新角色。 大概是这样的: 我在map函数中尝试了这个方法,但它给出了一个语法错误,因为在条件传

  • 以上,我需要将my-component渲染进id为app的div内, 但是以上代码行不通,请问我该如何做?