reactjs - onClick 不适用于自定义组件

标签 reactjs

为什么 onClick 不能直接在我的自定义元素上工作,如此处所示?函数 selectedResource 不会被调用。

return (
    <div>
        {
            resources.map(resource => {
                return (
                    <SelectListItem key={resource.id} onClick={this.chosenResource.bind(this)} resource={resource}  />
                )
            })
        }
    </div>
)

但是,如果我将自定义元素封装在 div 元素中,并在 div 元素上添加 onClick,那么它就可以工作。

return (
    <div>
        {
            resources.map(resource => {
                return (
                    <div key={resource.id} onClick={this.chosenResource.bind(this)}>
                        <SelectListItem  resource={resource}  />
                    </div>
                )
            })
        }
    </div>
)

第一种方法有什么问题?

最佳答案

@nrgwsth 是正确的,如果您仍然想坚持第一种方法,您可以使用:

return (
    <div>
        {
            resources.map(resource => {
                return (
                    <SelectListItem key={resource.id} customClickEvent={this.chosenResource.bind(this)} resource={resource}  />
                )
            })
        }
    </div>
)

然后,在 SelectListItem 的 render() 函数中,像这样使用:

return (
    <div onClick={this.props.customClickEvent}>
        ...
    </div>
)

关于reactjs - onClick 不适用于自定义组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45727171/

相关文章:

node.js - 为什么不能用 ReactJS 渲染 HTML

reactjs - React-Redux 应用程序中的 OpenID Connect SSO

javascript - React Container - 从任一 reducer 访问状态

javascript - 迭代字典 React Js 不起作用

reactjs - 仅刷新从父级更改的组件

reactjs - Flow React : Cannot create element because React. 组件 [1] 不是 React 组件

javascript - React.js 未捕获错误 : _registerComponent(. ..):目标容器不是 DOM 元素

javascript - React.js-具有行跨度的动态表

javascript - 如何使 React-Day-Picker 月份水平并排而不是垂直对齐

reactjs - 如何在 react 中实现 AG 网格行内的按钮