簡體   English   中英

MUI v5 中未定義自動完成的默認值

[英]Default value of Autocomplete is undefined in MUI v5

我在 MUI v5 的Autocomplete組件中設置了defaultValue ,但該值始終為undefined

摘自我的代碼

const cars = [
  { label: "BMW", code: "Volkswagen" },
  { label: "Benz", code: "Mercedes" }
];

...

 const formik = useFormik({
    initialValues: {
      car: ""
    },
    onSubmit: (values) => {}
  });

...
      <Autocomplete
        id="autocomplete"
        options={cars}
        getOptionLabel={(option) => `${option.code} - ${option.label}`}
        renderOption={(props, option) => (
          <Box component="li" {...props}>
            {option.code} - {option.label}
          </Box>
        )}
        defaultValue={`${cars[0].code} - ${cars[0].label}`}
        onChange={(e, value) => {
          formik.setFieldValue("car", `${value.code} - ${value.name}`);
        }}
        renderInput={(params) => (
          <TextField
            {...params}
            id="textField"
            name="cars"
            label="Cars"
            onChange={formik.handleChange}
            onBlur={formik.handleBlur}
            inputProps={{
              ...params.inputProps,
              autoComplete: "new-password"
            }}
          />
        )}
      />

我使用CodeSandbox創建了一個工作示例。 有人可以幫忙嗎?

您得到undefined-undefined是因為您已經在此處描述了 selected 屬性的外觀:

getOptionLabel={(option) => `${option.code} - ${option.label}`}

因此,您應該將一個可以訪問codelabel值的對象傳遞給默認選項。 更改defaultValue={cars[0]}會有所幫助。

工作演示

你可以使用:

defaultValue={cars[0]}

編輯自動完成(分叉)

暫無
暫無

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

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