javascript - 如何从reactjs中的按钮将 Prop 传递给函数

标签 javascript reactjs

我想使用事件处理程序将用户重定向到reactJS中的另一个路由,但我还没有弄清楚如何将其属性传递给事件处理程序函数。

<button onClick={ChallengeActions.OpenChallenge(item.title) }>Start<button>

这就是我的事件监听器的样子

onOpenChallenge: function(url) {

    window.location.href = url;
}

问题是,每当我加载页面时,该函数就会自动启动,而不是等待事件处理程序,我还收到以下错误。

Uncaught Error: Invariant Violation: Expected onClick listener to be a function, instead got type object

最佳答案

您需要注意以下事项:

  1. 事件处理程序需要映射到函数:
<button onClick={this.onChallengeButtonClicked}>Start</button>
  • 您需要告诉每个按钮它对应于哪个项目:
  • <button item={item} onClick={this.onChallengeButtonClicked}>Start</button>
    
  • 事件处理函数可以通过访问事件参数来检测哪个按钮项被单击:
  • onChallengeButtonClicked: function(event) {
        item = event.currentTarget.item;
        window.location.href = item.title;
    }
    

    关于javascript - 如何从reactjs中的按钮将 Prop 传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29430830/

    相关文章:

    javascript - jQuery 防止 nextAll() 反转菜单顺序

    javascript - 如何将项目放到 react-dnd 中的空部分?

    css - react : Stop click event propagation when using mixed React and DOM events

    javascript - 为什么在 "0"的短路评估中呈现 `array.length && ...`

    reactjs - 如何修复此函数以处理错误捕获的不同错误类型

    javascript - 渲染后如何在输入字段上设置焦点?

    javascript - 原型(prototype): How to prevent button pushing until response is made

    javascript - neovim [coc.nvim] build/inderx.js 未找到,请安装依赖并编译 coc.nvim : yarn install

    javascript - 如何在输入更改时显示 HTML5 验证消息?

    javascript - jQuery 查找和插入(jQuery 替换)