react+antd带接口搜索的下拉选择

1,使用dropdownRender做输入搜索

dropdownRender={(menu) => (
                <>
                  {menu}
                  <Divider
                    style={{
                      margin: '8px 0',
                    }}
                  />
                  <Space
                    style={{
                      padding: '0 8px 4px',
                    }}
                  >
                    <Input
                      placeholder="请输入搜索内容"
                      // ref={inputRef}
                      // value={name}
                      onChange={onSearchChange}
                      allowClear
                    />
                    <Button type="text" icon={<ZoomInOutlined />} onClick={searchItem}>
                      搜索
                    </Button>
                  </Space>
                </>
              )}

searchItem:

const searchItem=()=>{
        setSelectPage(1)//重置页码为1
        getSelectData(1)//此方法为调接口的方法
      }

onSearchChange:

const onSearchChange=(e)=>{
        setSearchValue(e.target.value);//调接口时将此值作为入参
      }

使用onPopupScroll使鼠标滑到底部时请求下一页数据

onPopupScroll={handPopupScroll}

handPopupScroll:
 

const handPopupScroll=(e)=>{
        const {total}=selectData
        const page=selectPage
        if(Math.ceil(total/10==page)) return 
        e.persist()
        const {target}=e
        if(Math.ceil((target.scrollTop+target.offsetHeight)>=target.scrollHeight)){
          let newPage=page+1
          setSelectPage(newPage)
          getSelectData(newPage)
        }
      }

 2输入时调接口

 使用onSearch

onSearch={(value) => onChangeSelect(value)}

 onChangeSelect:

const onChangeSelect=(value)=>{
          setSelectPage(1)//重置为第一页
          getSelectData(1,value)//调接口方法
      }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下拉选择可以使用 Ant Design Mobile 中的 Picker 组件来实现。以下是一个简单的例子: ```jsx import React, { useState } from 'react'; import { Picker } from 'antd-mobile'; function SelectExample() { const [value, setValue] = useState(null); const data = [ { label: '北京', value: 'beijing' }, { label: '上海', value: 'shanghai' }, { label: '广州', value: 'guangzhou' }, { label: '深圳', value: 'shenzhen' }, ]; return ( <Picker data={data} value={value} onChange={setValue} cols={1} className="forss" > <div>请选择城市</div> </Picker> ); } export default SelectExample; ``` 在这个例子中,我们首先引入了 `Picker` 组件,然后定义了一个 `SelectExample` 组件。在 `SelectExample` 组件中,我们使用了 React 的 `useState` 钩子来保存选择的值。然后,我们定义了一个数据数组 `data`,其中包含了可选项的标签和值。接着,在 `Picker` 组件中,我们传入了 `data`、`value`、`onChange`、`cols` 和 `className` 等属性。其中,`data` 表示可选项的数据,`value` 和 `onChange` 则分别表示当前选中的值和选择后的回调函数,`cols` 表示选择器的列数,`className` 则表示选择器的样式。最后,我们在 `Picker` 组件中还传入了一个 `div` 元素,用来显示选择器的提示信息。 当用户点击选择器时,会弹出一个下拉框,用户可以在其中选择一个选项。选择后,会自动更新 `value` 的值,并且触发 `onChange` 回调函数。我们可以根据 `value` 的值来进行后续操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值