简体   繁体   English

为什么 Material-UI 按钮的值未传递给 onClick 事件处理程序?

[英]Why value from a Material-UI Button is not being passed to the onClick event handler?

I am trying to pass a value from a Material-UI Button when it's clicked to it's click handler, but it's always showing value of undefined .我试图从 Material-UI 按钮单击它的单击处理程序时传递一个值,但它始终显示undefinedvalue Earlier when I was using a simple button, I was getting value but not after.早些时候,当我使用一个简单的按钮时,我获得了value ,但之后却没有。

const categoryChangedHandler = (e) => {
        console.log("category choosed ========= " + e.target.value);
        setCategory(e.target.value);

    };
<Button className="CategoryButton" variant="outlined" color="primary"
                                value={category}
                                onClick={e => categoryChangedHandler(e)}
                                style={{ textAlign: 'center' }}
                            >
                                {category}
                            </Button>

and I am getting the result:我得到了结果:

category choosed ========= undefined

You need to use event.currentTarget.value instead of event.target.value .您需要使用event.currentTarget.value而不是event.target.value

The text of a Material-UI Button is within a <span> inside a <button> element. Material-UI Button的文本位于<button>元素内的<span>内。 When you click on the text, event.target will refer to the span element;当你点击文本时, event.target将引用 span 元素; whereas event.currentTarget will refer to the element with the event handler attached (ie the button element) that the click event bubbled up to.event.currentTarget将引用附加了事件处理程序的元素(即按钮元素),单击事件冒泡到该元素。

Here's a simple working example:这是一个简单的工作示例:

import Button from "@material-ui/core/Button";

export default function App() {
  return (
    <Button value="hello" onClick={(e) => console.log(e.currentTarget.value)}>
      Hello World
    </Button>
  );
}

编辑按钮 currentTarget

Related answer:相关答案:

Documentation:文档:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何确保 material-ui 中的整个 Button 组件为 onClick 事件返回相同的 ID 值? - How to ensure entire Button component in material-ui returns the same ID value for an onClick event? 为什么onclick称为react material-ui - why onclick called react material-ui Material-UI开关状态未从数据库值更新 - Material-UI Switch status is not being updated from DB value material-ui:从 onClick() 处理程序中的芯片组件获取 label - material-ui: Get label from Chip component inside onClick() handler 由 onMouseOver 触发的 Material-UI 弹出框阻止按钮的 onClick 事件 - React.js - Material-UI popover triggered by onMouseOver is blocking onClick event of button - React.js 在Material-UI按钮上为onClick事件调用动作创建者不起作用 - Calling action creator for onClick event on a material-ui button doesn't work Material-ui:警告:未知的事件处理程序属性`onKeyboardFocus`。它会被忽略 - Material-ui: Warning: Unknown event handler property `onKeyboardFocus`. It will be ignored onClick 事件打开所有 Material-UI 对话框 - onClick event opens all Material-UI dialogs 如何在 onClick 中获取 Material-UI Button 属性? - How to get Material-UI Button attribute in onClick? 如何更改按钮颜色 onClick Material-UI,反应 - How to change Button Color onClick Material-UI, React
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM