首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资料ui v4中自动完成的默认值

资料ui v4中自动完成的默认值
EN

Stack Overflow用户
提问于 2021-12-02 15:30:51
回答 1查看 414关注 0票数 0

我正在使用资料UI v4。

我有一个组件,它接受所有的用户并在下拉列表中显示他们,但是我无法选择默认值。我试着跟随沙箱,但它对我无效: https://codesandbox.io/s/material-demo-4mhcj?file=/demo.js

test@gmail.com

反应钩形:^7.20.5

我尝试给Controller和Autocomplete提供一个默认值,但是它第一次不能工作。

你知道我在这里做错什么了吗?

代码语言:javascript
复制
// data is something like 
// [{name: 'ABCDE', email: 'ABCDEEE@gmail.com'}, {name: 'eeeeee', email: 'eeeeee12@gmail.com'}]

const UserSelection = ({ data = [], onChangeHandler }) => {
  const { control } = useForm({});
  const selectedUserEmail = "ABCDEEE@gmail.com";

  return (
    <>
        <Controller
          name="combo-box-demo"
          control={control}
          defaultValue={data.find(item => item.email === selectedUserEmail)}
          render={()  =>
            <Autocomplete
              id="combo-box-demo"
              size="small"
              options={data}
              defaultValue={data.find(item => item.email === selectedUserEmail)}
              onChange={onChangeHandler}
              getOptionLabel={option => option.name }
              renderOption={option => option.name}
              renderInput={(params) => (
                <TextField
                  {...params}
                  variant="outlined"
                  placeholder="Select"
                />
              )}
            />
          }
        />
    </>
  );
};

export default UserSelection;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-02 20:25:08

我找到了答案,所以我在这里发帖:

问题是即将到来的数据是异步的,并且自动完成无法正确地呈现它。

目前我使用的是:

代码语言:javascript
复制
const UserSelection = ({ data = [], onChangeHandler }) => {
  const selectedUser = {name: 'ABCDE', email: 'ABCDEEE@gmail.com'};

  return (
    <Autocomplete
    id="combo-box-demo"
    options={data}
    defaultValue={selectedUser}
    onInputChange={onChangeHandler}
    getOptionLabel={option => option.name }
    renderOption={option => option.name}
    renderInput={(params) => (
       <TextField
        {...params}
         variant="outlined"
         placeholder="Select"
       />
    )}
  />
  );
};
export default UserSelection;

无论我在哪里使用上述组件,我都使用如下

代码语言:javascript
复制
data ? <UserSelection/> : null

另外,我没有使用onChange,而是使用onInputChange来帮助获取默认值。

然后运行并加载默认用户,希望它对社区有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70202219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档