我目前正在阅读React官方网站,在那里遇到了这个问题。React官方网站指出,我们可以在JSX内部使用功能代码。因此,我尝试了以下代码,但无法正常工作。
ABCD类扩展了React.Component {
render() {
return (
<div>
<p>
{() => <div>Hello World </div>}
</p>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
}
我知道,我知道,有些人可能会说请参见React网站上给出的示例。我看到了,官方网站上的示例涉及外部功能。我只想知道我们可以在JSX内部独立使用函数。
请参阅此链接以获取更多信息:https : //reactjs.org/docs/jsx-in-depth.html
只需调用一个返回 JSX 的函数即可。例如:
class FooComp extends React.Component {
someFunction() {
return (<div>Hello World!</div>);
}
render() {
return (
<div>
<p>
{this.someFunction()}
</p>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
我觉得您要尝试做的是错误的。
JSX无法解析对象或函数
如果你只是尝试
render() {
return (
<div>
<p>
{() => <div>Hello World </div>}
</p>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
您正在尝试插值或返回作为表示节点不可接受的函数。它应该是jsx可以解析的东西。JSX无法解析对象或函数,因此应由Javascript引擎对其进行解析。
您可以做的是定义您的方法并立即调用该方法,以便函数(iife函数)返回可以由JSX解析的内容。
就像是
render() {
return (
<div>
<p>
{(() => {<div>Hello World </div>})()}
</p>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
希望你明白这一点。返回可以由JSX解析的内容。
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |