Reactjs - 不能将onClick应用于渲染组件

时间:2017-05-22 22:10:04

标签: javascript reactjs svg ecmascript-6

如果我在React类组件中有以下代码:

      <svg viewBox="-100 -100 600 500" id='renderName' >
            <Initial value={this.props.value.substring(0,1)} /> 
      </svg>

我似乎只能从容器svg中触发onClick事件,而不是从&#39; Initial&#39;组件I渲染。

E.g。

      <svg viewBox="-100 -100 600 500" id='renderName' onClick={this._onButtonClick} >

^工作

      <Initial value={this.props.value.substring(0,1)} onClick={this._onButtonClick} />

^没有用

知道为什么会这样吗?是否与“onClick&#39;作为道具传递而不是调用函数?

作为更新:Initial正在另一个组件中呈现。在这个组件上,我想用onClick调用一个函数。

1 个答案:

答案 0 :(得分:2)

您的代码中的

Initial是一个组件,而不是一个元素,因此您应该将此组件获取的onClick属性传递给它呈现的实际元素:

class Initial extends React.Component {

    render() {
        return <rect
                   ...
                   ...
                   onClick={this.props.onClick}
               />
    }
}