实现antd下拉框动态添加内容(与数据库交互)
antd下拉控件的动态内容添加(与数据库交互)
antd这个框架给开发带来了极大的方便,但同时,我认为还有一些不方便的地方:常用的逻辑在文档中没有体现。需要前端开发经验的人才能快速上手,而我刚刚接触这个东西,antd基本将所有常用的控件全都封装了,包括select下拉框,在以往的开发当中,我常常将下拉框中的选项写死,没有与后端进行交互,可需求并不总是这样的,不能总是糊弄甲方,在粗浅的学习之余,写下这篇博客,用作往后实践的参考。
方法
- 在以前的开发中常常是将下拉框中的内容写死,如下面代码所示
const STATUS_OPTIONS = ['广告', '活动', '新闻', '投票'];
然后用map方法进行遍历:
<Select
placeholder="请选择"
style={{ width: 300 }}
onChange={e => this.handleActivity(e)}>
{STATUS_OPTIONS.map(it => (
<Select.Option key={it} value={it}>
{it}
</Select.Option>
))}
</Select>
可以看到的是,这种方法无法对STATUS_OPTION进行动态编辑.
2. 现在的方法中,我们可以在点击某个按钮的时候,访问到后端的接口,接收来自后端的指定数据,然后将数据里的list映射到下拉框的option里(使用上面的方法)。根据需求,我会在选择某个下拉框中的选项时,事件触发,调用后端的接口
handleActivity = e => {
if (e === '活动') {
const { dispatch } = this.props;
dispatch({
type: 'systemSetting/activityList',
payload: {
size: 10,
},
});
}
};
3.完成上述操作后,后端返回给前端的数据中会有一个list,将这个list使用map方法映射到option中去
<FormItem
{...formItemLayout}
label={<span>选择活动</span>}
style={{ display: getFieldValue('type') === '活动' ? 'block' : 'none' }}
>
{getFieldDecorator('target')(
<Select placeholder="选择活动" style={{ width: 300 }}>
{list.map(it => (
<Select.Option key={it.id} value={it.id}>
{it.title}
</Select.Option>
))}
</Select>
)}
</FormItem>
4.该工程是荆门文体云项目,特此谨记
实现antd下拉框动态添加内容(与数据库交互)的更多相关文章
- 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ASP.NET——实现两个下拉框动态联动
引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...
- JavaScript下拉框去除重复内容
下拉框去除重复内容 <script type="text/javascript" src="http://www.joleye.com/libraries/java ...
- JavaScript向select下拉框中添加和删除元素
JavaScript向select下拉框中添加和删除元素 1.说明 a 利用append()方法向下拉框中添加元素 b 利用remove()方法移除下拉框中最后一个元素 2.设计源码 < ...
- JavaScript解决select下拉框中的内容太长显示不全的问题
JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...
- Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- 谈谈如何给下拉框option添加点击事件?
我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发. ...
- JavaScript 下拉框 左边添加至右边
关于如何实现右边下拉框中选项的排序一时没有好的解决方法,等想到了回来补充 <!DOCTYPE html> <html> <head> <meta charse ...
- 关于java 获取 html select标签 下拉框 option 文本内容 隐藏域
在HTML中从多选下拉框中提取已选中选项的文本内容到后台,被这个问题难倒了. demo.jsp文件 <select id="selecttype" name"typ ...
随机推荐
- BERT大火却不懂Transformer?读这一篇就够了
https://zhuanlan.zhihu.com/p/54356280 大数据文摘与百度NLP联合出品 编译:张驰.毅航.Conrad.龙心尘 来源:https://jalammar.github ...
- pip 指定目录安装
pip install --target=d:\somewhere\other\than\the\default package_name
- 在SuperSocket中启用TLS/SSL传输层加密
关键字: TLS, SSL, 传输层加密, 传输层安全, 证书使用, X509Certificate SuperSocket 支持传输层加密(TLS/SSL) SuperSocket 有自动的对TLS ...
- JavaScript setTimeout this对象指向问题
上面这幅图片是原始的效果, 现在想鼠标移到图标上,显示图标的提示,但需要延时,也就是鼠标滑至图标上,并不立刻显示,而是等1秒后显示. html部分 <div class="porHea ...
- Python--day61--安装Django,Django项目的启动和设置运行端口和关闭运行端口
0,安装Django 1,Django项目的启动 2,设置运行端口和关闭运行端口
- 2018-3-7-VisualStudio-csproj-添加-ItemGroup-的-Service-
title author date CreateTime categories VisualStudio csproj 添加 ItemGroup 的 Service lindexi 2018-3-7 ...
- 2019-10-24-dotnet-列表-Linq-的-Take-用法
title author date CreateTime categories dotnet 列表 Linq 的 Take 用法 lindexi 2019-10-24 9:4:23 +0800 201 ...
- Vue 子组件传父组件
vue中的传值是个很烦的问题,记录一下自己完成的这个需求. 首先,被引用的称之为子组件,当前页面为父组件,这个不能搞错. 子组件传值,要用到this.$emit. 子组件页面,需要在一个函数中使用th ...
- P1072 城市轰炸
题目描述 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入格式 ...
- P1017 聪聪排数字
题目描述 今天聪聪收到了n张卡片,他需要给他们从小到大排序. 输入格式 输入的第一行包含一个整数 \(n(1 \le n \le 10^3)\) . 输入的第二行包含 \(n\) 个正整数,以空格间隔 ...