【发布时间】:2018-08-20 16:11:53
【问题描述】:
我正在尝试输出一些 svg 并从列表中输出它们,这是我的渲染方法:
render() {
const renderTag = () => {
const Tag = this.props.id
return(<Tag />)
}
return (
<div key={this.props.name} className="social-box">
<a className={this.props.id + "-link"}>
{renderTag()}
</a>
</div>
)
}
但是,DOM 节点始终是小写的,即 <facebook> 而不是 <Facebook> this.props.id 在控制台上正确呈现为 Facebook。谁能告诉我为什么反应或浏览器错误地呈现为小写,因此不是组件,以及如何修复?
【问题讨论】:
-
您的代码似乎没有错,接受您在 render 中声明的函数,每次调用 render 时都会重新创建该函数。你能制作一个可重现的问题演示吗
-
@ShubhamKhatri 这样做没有错,这会导致这个问题吗?事实上,看看我的回答,这很可能是造成这种情况的原因。
-
@SamPettersson,我什么时候说过将
renderTag移到render之外会解决问题。我只是要求其他人提供他的问题的可重现演示,因为即使 React 将标签转换为小写,OP 问题是组件没有被渲染
标签: javascript reactjs jsx