在反应中附加一个新的 dom 元素
Appending a new dom element in react
我创建了一个自定义组件,如果某个 属性 设置为 true
,我想在组件呈现时添加子元素。我使用了以下代码,但未呈现该组件。我在这里做错了什么。
let deleteNode = '';
if(deletable){
deleteNode = '<div />'
}
let defaultClasses = 'chips chips-rounded';
return (
<div className={classNames(classes, defaultClasses)} onClick={ this.onClick }>
{avatar}
<span>{this.props.labelText}</span>
{deleteNode}
</div>
)
您正在尝试渲染组件,但实际上您只是在 deleteNode
中发送 string
。您的代码应该如下所示
if(deletable){
deleteNode = (<div />);
}
我的不同方法是:
render() {
const defaultClasses = 'chips chips-rounded'
return (
<div className={classNames(classes, defaultClasses)} onClick={ this.onClick }>
{avatar}
<span>{this.props.labelText}</span>
{deletable && <div />}
</div>
)
}
因此您不需要额外的 if
检查。
我创建了一个自定义组件,如果某个 属性 设置为 true
,我想在组件呈现时添加子元素。我使用了以下代码,但未呈现该组件。我在这里做错了什么。
let deleteNode = '';
if(deletable){
deleteNode = '<div />'
}
let defaultClasses = 'chips chips-rounded';
return (
<div className={classNames(classes, defaultClasses)} onClick={ this.onClick }>
{avatar}
<span>{this.props.labelText}</span>
{deleteNode}
</div>
)
您正在尝试渲染组件,但实际上您只是在 deleteNode
中发送 string
。您的代码应该如下所示
if(deletable){
deleteNode = (<div />);
}
我的不同方法是:
render() {
const defaultClasses = 'chips chips-rounded'
return (
<div className={classNames(classes, defaultClasses)} onClick={ this.onClick }>
{avatar}
<span>{this.props.labelText}</span>
{deletable && <div />}
</div>
)
}
因此您不需要额外的 if
检查。