0
votes

I tried setting the defaultValue to be "Chairs" and it is not working.

These are the codes:

import React, { useState } from "react";
import TextField from "@mui/material/TextField";
import Autocomplete from "@mui/material/Autocomplete";
import { Items2 } from "./Items2";

export default function ComboBox() {
  const [selected, setSelected] = useState("");

  console.log(selected);

  return (
    <>
      you selected: {selected}
      <br />
      <br />
      <Autocomplete
        disablePortal
        isOptionEqualToValue={(option, value) => option?.label === value?.label}
        id="combo-box-demo"
        options={Items2}
        defaultValue="Chairs"
        fullwidth
        value={selected}
        onChange={(event, value) => setSelected(value)}
        renderInput={(params) => <TextField {...params} label="Items" />}
      />
    </>
  );
}

Also in codesandbox: https://codesandbox.io/s/combobox-material-demo-forked-g88fi?file=/demo.js:0-904

1

1 Answers

1
votes

You just need to set default value for selected state and remove defaultValue from Autocomplete component:

import React, { useState } from "react";
import TextField from "@mui/material/TextField";
import Autocomplete from "@mui/material/Autocomplete";
import { Items2 } from "./Items2";

export default function ComboBox() {
  const [selected, setSelected] = useState("Chairs");

  console.log(selected);

  return (
    <>
      you selected: {selected}
      <br />
      <br />
      <Autocomplete
        disablePortal
        isOptionEqualToValue={(option, value) => option?.label === value?.label}
        id="combo-box-demo"
        options={Items2}
        fullwidth
        value={selected}
        onChange={(event, value) => setSelected(value)}
        renderInput={(params) => <TextField {...params} label="Items" />}
      />
    </>
  );
}

Edit ComboBox Material Demo (forked)