在反应中添加一个新的dom元素

时间:2017-11-24 09:13:11

标签: javascript reactjs element

我已经创建了一个自定义组件,并且我希望在组件呈现时添加子元素,如果某个属性设置为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>
    )

2 个答案:

答案 0 :(得分:1)

您正在尝试渲染组件,但实际上您只是在string中发送了deleteNode。您的代码应该如下所示

if(deletable){
    deleteNode = (<div />);
}

答案 1 :(得分:1)

我的方法不同:

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检查。