reactjs - 在 React 类组件内部渲染常量
问题描述
我有一个关于在 React 类组件中使用常量呈现内容的方式的快速问题。所以下面的代码可以正常工作(使用 map 函数渲染一个常量):
class App extends React.Component {
array = [
{
name: "Sarah",
age: 27
},
{
name: "Sam",
age: 35
}
]
render() {
const output = this.array.map(elem => (
<div>
<p>{elem.name}</p>
<p>{elem.age}</p>
</div>
));
return (
<div>{output}</div>
);
}
}
但是,以下会产生一个空白页面(我只是定义一个返回 div 并尝试呈现它的常量):
class App extends React.Component {
render() {
const Output = () => (
<div>Hello</div>
);
return (
<div>{Output}</div>
);
}
}
但是,如果我使用角括号而不是花括号,则几乎相同的代码可以工作:
class App extends React.Component {
render() {
const Output = () => (
<div>Hello</div>
)
return (
<div>
<Output />
</div>
)
}
}
所以看起来这与花括号和尖括号有关。花括号在我使用 map 函数时起作用,但当我在渲染方法中定义一个返回 div 的常量并尝试直接渲染它时不起作用。然后当我使用尖括号时它再次起作用......这有点奇怪。我知道这远非最重要的事情,我只是想弄清楚这一点。先感谢您!
解决方案
class App extends React.Component {
render() {
const Output = () => (
<div>Hello</div>
);
return (
<div>{Output()}</div>
);
}
}
如果您尝试调用函数 Output() 它将返回 JSX 但按照本文他们不建议这样做
推荐阅读
- sql - PostgreSQL - 查询 JSON 并替换 JSON 值
- angular - 使用两种语言 (pdfMake) 时,在虚拟文件系统中找不到文件“pdfmake/build/Roboto-Regular.ttf”
- ms-access - 无法解释的“输入参数值”访问问题
- oracle - 从 informatica 表达式转换中提取两个之间的字符串
- python - 如何通过 pySerial 从 Python 发送 int 或 string 并在 C 中转换为 int 或 String
- c# - 如何在 c# Visual Studio 2019 的单元测试方法中使用控制台或终端来显示输出并接收来自用户的输入?
- python - def() 外与 def() 内
- c++ - 堆和栈之间的距离
- redux - 测试ngrx:调度动作并期待商店
- magnolia - 获取 magnolia cms 类型 [mgnl:area] 的页面属性、系统属性和所有子节点的属性