javascript - Reactjs - 无法将 onClick 应用于渲染的组件

标签 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 事件,而不能从我正在渲染的“初始”组件中触发。

例如

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

^ 有效

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

^ 不起作用

知道为什么会这样吗?这与“onClick”作为 Prop 传递而不是调用函数有关吗?

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

最佳答案

代码中的

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

class Initial extends React.Component {

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

关于javascript - Reactjs - 无法将 onClick 应用于渲染的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44122881/

相关文章:

javascript - d3.js 和谷歌地图 API 的多条路径

javascript - 如何根据 JSON 属性名称替换字符串值

reactjs - “react-bootstrap”不包含名为“MenuItem”的导出

javascript - Webpack + React : pass commit SHA from webpack to JS

javascript - 在 SVG 中弯曲图像

javascript - JQuery 表单更新监听器

javascript - 使用 Axios 和 ReactJS 从 API 中删除数据

javascript - 如何创建自己的 babel 处理器替代 `React`

pdf - Phantomjs zoomFactor - 将光栅化缩放到特定大小

javascript - D3.js 移动 svg 结构中的元素