react antd input/select 当动态调用接口搜索时,去除输入框输入拼音被收集到当作入参

该段代码展示了一个React组件,它是一个禁用状态下基于搜索的Select组件。当用户输入拼音时,会触发搜索功能,通过`handleComposition`处理拼音输入。组件使用了debounce函数优化搜索请求,并在加载中显示Loading提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            let isComposition = false;

            <Col span={8}>
              <Item name={'replaceStandardNo'} label="代替标准号:">
                <Select
                  disabled={!!selectedPj}
                  showSearch
                  allowClear
                  onClear={() => infoForm.setFieldValue('replaceStandardNo', '')}
                  defaultActiveFirstOption={false}
                  filterOption={false}
                  onSearch={(txt) => handleChange(txt, 'replace')}
                  notFoundContent={null}
                  optionLabelProp="title"
                  dropdownRender={(menu) => (
                    <>
                      {!replaceLoading ? (
                        menu
                      ) : (
                        <div style={{ height: '160px' }}>
                          <LoadingTip status={0} />
                        </div>
                      )}
                    </>
                  )}
                  options={replaceNoOpts
                    .filter((el) => el.standardNo)
                    .map((el) => ({
                      label: `${el.standardName} / ${el.standardNo}`,
                      value: el.standardNo,
                    }))}
                  onCompositionStart={handleComposition}
                  onCompositionEnd={handleComposition}
                ></Select>
              </Item>
            </Col>
// 输入拼音时搜索文字的处理
  const handleComposition = (ev) => {
    isComposition = ev.type !== 'compositionend';
  };
// 立项搜索值变化函数
  const handleChange = debounce((txt, from) => {
    let searchTxt;
    if (!isComposition) {
      searchTxt = txt;
    }
    from === 'project'
      ? searchTxt !== undefined && getProjectList(searchTxt)
      : searchTxt !== undefined && getReplaceNo(searchTxt);
  }, 300);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值