簡體   English   中英

為什么 Material-UI 按鈕的值未傳遞給 onClick 事件處理程序?

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

我試圖從 Material-UI 按鈕單擊它的單擊處理程序時傳遞一個值,但它始終顯示undefinedvalue 早些時候,當我使用一個簡單的按鈕時,我獲得了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>

我得到了結果:

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

您需要使用event.currentTarget.value而不是event.target.value

Material-UI Button的文本位於<button>元素內的<span>內。 當你點擊文本時, event.target將引用 span 元素; event.currentTarget將引用附加了事件處理程序的元素(即按鈕元素),單擊事件冒泡到該元素。

這是一個簡單的工作示例:

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

相關答案:

文檔:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM