【问题标题】:material ui input base auto focus doesnt work材质 ui 输入基础自动对焦不起作用
【发布时间】:2020-09-15 06:01:27
【问题描述】:

我正在使用材质 ui 选择框。在选择框内我有一个输入库,用于过滤选择框选项。问题是当我选择一个选项并在输入库中输入时,它失去了焦点。问题不会发生选择框时没有值.AND自动对焦不适用于输入基础和输入道具

<Select
          ref={ref}
          input={<BootstrapInput />}
          labelId="demo-mutiple-chip-label"
          id="demo-mutiple-chip"
          multiple
          value={value}
          onChange={onChange}
          renderValue={selected => (
            <div className={classes.chips}>
              {selected.map(id => (
                <Chip
                  key={id}
                  label={options[id]}
                  className={classes.chip}
                  onDelete={() => {
                    onDelete(id);
                  }}
                  onMouseDown={event => {
                    event.stopPropagation();
                  }}
                  classes={{
                    deleteIcon: classes.deleteIcon,
                    root: classes.chip,
                    label: classes.labelChip,
                  }}
                />
              ))}
            </div>
          )}
          classes={{
            icon: classes.arrowIcon,
            selectMenu: classes.selectMenu,
          }}
          MenuProps={{ classes: { paper: classes.paper } }}
        >
          <MenuItem
            onKeyDown={e => {
              e.stopPropagation();
            }}
            // onClick={e => e.stopPropagation()}
            // onChange={e => e.stopPropagation()}
          >
            <InputBase
              value={searchText}
              onChange={e => setSearchText(e.target.value)}
              placeholder="جستجو کنید"
              classes={{ root: classes.searchInput }}
              autoFocus
              inputRef={searchInputRef}
              inputProps={{ autoFocus: true }}
              onKeyDown={e => {
                e.stopPropagation();
              }}
            />
            {Object.keys(filteredOptions).length === 0 && (
              <StyledButton
                onClick={() => {
                  setSearchText('');
                  addButtonClickHandler(searchInputRef.current.value);
                }}
              >
                <Add />
              </StyledButton>
            )}
          </MenuItem>
          {Object.keys(filteredOptions).map(id => (
            <MenuItem key={id} value={id} onKeyDown={e => e.stopPropagation()}>
              <Checkbox checked={checked(id)} key={id} />
              {filteredOptions[id]}
            </MenuItem>
          ))}
        </Select>

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    您可以尝试使用 searchInputRef.current.focus();

    useEffect(() => {
        searchInputRef.current.focus();
      }, []);
    

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 2020-12-02
      • 2019-11-25
      • 2020-08-04
      • 2022-08-05
      • 2017-05-10
      • 2021-12-12
      • 2020-07-27
      • 2022-08-24
      相关资源
      最近更新 更多