簡體   English   中英

如何獲取 Material UI 'Autocomplete' 組件的名稱?

[英]How to get the name of Material UI 'Autocomplete' component?

我正在使用多個自動完成MUI 組件,目前正在嘗試編寫一個“通用”事件處理程序,該處理程序將調用useReducer掛鈎來存儲 state。

問題是在Autocomplete文檔中,onChange function 如下所示:

function(event: object, value: T | T[], reason: string) => void

我正在嘗試從事件 object 中獲取字段的名稱(以確定正在更改的自動完成),但event.target.nameevent.currentTarget.name不起作用。

是否有任何方法可以檢索已更改組件的名稱?

您未定義的原因是onChange中的event.target指向li但 MaterialUi Autocomplete 會將name添加到外部div 所以,沒有直接的方法。 您可以使用ref並使用getAttribute來獲取名稱。

編輯材質自動選擇獲取名稱屬性

代碼片段

export default function ComboBox() {
  const ref0 = useRef();

  return (
    <Autocomplete
      id="combo-box-demo"
      ref={ref0}
      name="movies"
      options={top100Films}
      getOptionLabel={option => option.title}
      onInputChange={(e, v, r) => {
        const ev = e.target;
        if (r === "reset") console.log(ev, v, r);
      }}
      onChange={(e, v, r) => {
        console.log(ref0.current.getAttribute("name"));
      }}
      style={{ width: 300 }}
      renderInput={params => (
        <TextField
          name="auto-input"
          {...params}
          label="Combo box"
          variant="outlined"
        />
      )}
    />
  );
}

暫無
暫無

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

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