gpt4 book ai didi

reactjs - MUI 自动完成 : How to prevent open on focus, 在输入更改时打开?

转载 作者:行者123 更新时间:2023-12-04 00:01:10 25 4
gpt4 key购买 nike

我试图阻止自动完成在用户点击后立即打开建议。我希望它只在用户开始输入时打开。似乎没有 Prop 可以实现这一目标。
有没有办法使用 onInputChange 来切换自动完成“打开” Prop ( bool )。
谢谢

最佳答案

是的,您可以显式控制 open 属性,如果您想根据用户输入的内容进行控制,那么我建议您也显式控制 inputValue 属性。

下面是执行此操作的一种方法的工作示例。除了通常指定的 Prop 之外,这还指定了 onOpen、onClose、onInputChange、open 和 inputValue Prop 。

  • onOpen 将在认为 open 应设置为 true 时获得 called by Material-UI 。下面示例中的 handleOpen 会在 inputValue 为空时忽略此事件。
  • onClose 将在认为 open 应设置为 false 时获得 called by Material-UI 。下面的示例无条件地调用 setOpen(false) 以便它在与默认行为相同的所有场景中仍然关闭。
  • 下面示例中的
  • handleInputChange,除了管理inputValue 状态外,还根据值是否为空来切换open 状态。
  • /* eslint-disable no-use-before-define */
    import React from "react";
    import TextField from "@material-ui/core/TextField";
    import Autocomplete from "@material-ui/lab/Autocomplete";

    export default function ComboBox() {
    const [inputValue, setInputValue] = React.useState("");
    const [open, setOpen] = React.useState(false);
    const handleOpen = () => {
    if (inputValue.length > 0) {
    setOpen(true);
    }
    };
    const handleInputChange = (event, newInputValue) => {
    setInputValue(newInputValue);
    if (newInputValue.length > 0) {
    setOpen(true);
    } else {
    setOpen(false);
    }
    };
    return (
    <Autocomplete
    id="combo-box-demo"
    open={open}
    onOpen={handleOpen}
    onClose={() => setOpen(false)}
    inputValue={inputValue}
    onInputChange={handleInputChange}
    options={top100Films}
    getOptionLabel={option => option.title}
    style={{ width: 300 }}
    renderInput={params => (
    <TextField {...params} label="Combo box" variant="outlined" />
    )}
    />
    );
    }

    // Top 100 films as rated by IMDb users. http://www.imdb.com/chart/top
    const top100Films = [
    { title: "The Shawshank Redemption", year: 1994 },
    { title: "The Godfather", year: 1972 },
    { title: "The Godfather: Part II", year: 1974 }
    // and many more options
    ];

    Edit Autocomplete open if input

    关于reactjs - MUI 自动完成 : How to prevent open on focus, 在输入更改时打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61258089/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com