如何默认打开Autocomplete Material-UI中的下拉列表?

Pra*_*nav 6 reactjs material-ui

在自动完成表单中,显示国家/地区的数据及其相关代码。当输入文本获得焦点时,下拉列表将被填充。我的目的是预加载数据数组而不需要焦点。请参阅代码示例

const [newValue, setNewValue] = useState(null);
const [textToggle, textToggleState] = useState(false);

render(
         <div
          style={{ cursor: "pointer" }}
          onClick={() => {
            textToggleState(!textToggle);
          }}
        >
          <h5>+{newValue == null ? "91" : newValue.calling_code}</h5>
        </div>
        {textToggle ? (
          <Autocomplete
            id="size-small-standard"
            size="small"
            options={cities}
            onChange={(event, value) => {
              setNewValue(value);
              textToggleState(!textToggle);
            }}
            autoSelect={true}
            getOptionLabel={(option) =>
              `${option.country}` + `+ ${option.calling_code}`
            }
            renderOption={(option) => (
              <>{`${option.country} + ${option.calling_code}`}</>
            )}
            //defaultValue={cities[98]}
            style={{ width: "100%" }}
            renderInput={(params) => (
              <TextField
                {...params}
                variant="standard"
                placeholder="Search your country"
                style={{ width: "40%" }}
              />
            )}
          />
        ) : (
          ""
        )}
  </div>
)
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到数据显示在输入文本焦点上。预加载数据的最佳解决方案是什么?

CodeSandbox链接:https://codesandbox.io/s/how-to-add-only-single-value-from-autocomplete-in-material-ui-forked-tu218

Nea*_*arl 5

只需控制 的open状态Autocomplete并将默认值设置为true

export default function ComboBox() {
  // default value to true to open at first render
  const [open, setOpen] = useState(true);

  return (
    <Autocomplete
      open={open}
      onOpen={() => setOpen(true)}
      onClose={() => setOpen(false)}
      options={top100Films}
      getOptionLabel={(option) => option.title}
      renderInput={(params) => (
        <TextField {...params} label="Combo box" variant="outlined" />
      )}
    />
  );
}
Run Code Online (Sandbox Code Playgroud)

现场演示

编辑 67043434/如何在自动完成材料用户界面中预加载下拉列表