material-ui Autocomplete 中的过滤选项方法

Autocomplete 有一个 filterOptions方法:可以自由决定哪些选项可用,哪些将隐藏。

如果只想显示所有选项,只需实现filterOptions返回所有值:

filterOptions={(options, state) => options}

实现 不区分大小写模糊查询 项目名或编码:

<Autocomplete
    value={values.fundSource}
    inputValue={fundSourceInput}
    options={fundSourceOptions}
    getOptionLabel={(option) => option.name}
    filterOptions={(options) => {
        const reg = new RegExp(fundSourceInput, 'i');
        const array = options.filter((item) => reg.test(item.name) || reg.test(item.code));
        return array;
    }}
    renderInput={(params) => (
        <TextField
            {...params}
            label="资金来源"
            error={hasError('fundSourceId')}
            helperText={hasError('fundSourceId') ? errors.fundSourceId[0] : null}
            variant="outlined"
            required
            fullWidth
            />
    )}
    renderOption={(option) => (
        <ListItemText
            primary={option.name}
            secondary={`编码:${option.code}`}
            />
    )}
    onChange={(event, value) => {
        handleSetFormValue('fundSource', value);
        if (value?.id) {
            dispatch({
                type: INCOMESETTLEMENT_SETTING,
                payload: {
                    setting: {
                        disburseTypeList: value.disburseTypes,
                    },
                },
            });
            handleSetFormValue('fundSourceId', value.id);
        } else {
            handleSetFormValue('fundSourceId', '');
        }
    }}
    onInputChange={(event, value) => {
        setFundSourceInput(value);
    }}
/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值