antd下拉控件的动态内容添加(与数据库交互)

antd这个框架给开发带来了极大的方便,但同时,我认为还有一些不方便的地方:常用的逻辑在文档中没有体现。需要前端开发经验的人才能快速上手,而我刚刚接触这个东西,antd基本将所有常用的控件全都封装了,包括select下拉框,在以往的开发当中,我常常将下拉框中的选项写死,没有与后端进行交互,可需求并不总是这样的,不能总是糊弄甲方,在粗浅的学习之余,写下这篇博客,用作往后实践的参考。

方法

  1. 在以前的开发中常常是将下拉框中的内容写死,如下面代码所示

    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下拉框动态添加内容(与数据库交互)的更多相关文章

  1. 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. ASP.NET——实现两个下拉框动态联动

    引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...

  3. JavaScript下拉框去除重复内容

    下拉框去除重复内容 <script type="text/javascript" src="http://www.joleye.com/libraries/java ...

  4. JavaScript向select下拉框中添加和删除元素

    JavaScript向select下拉框中添加和删除元素 1.说明 a   利用append()方法向下拉框中添加元素 b   利用remove()方法移除下拉框中最后一个元素 2.设计源码 < ...

  5. JavaScript解决select下拉框中的内容太长显示不全的问题

    JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...

  6. Web 1三级联动 下拉框 2添加修改删除 弹框

    Web  三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  7. 谈谈如何给下拉框option添加点击事件?

    我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发. ...

  8. JavaScript 下拉框 左边添加至右边

    关于如何实现右边下拉框中选项的排序一时没有好的解决方法,等想到了回来补充 <!DOCTYPE html> <html> <head> <meta charse ...

  9. 关于java 获取 html select标签 下拉框 option 文本内容 隐藏域

    在HTML中从多选下拉框中提取已选中选项的文本内容到后台,被这个问题难倒了. demo.jsp文件 <select id="selecttype" name"typ ...

随机推荐

  1. ELMo解读(论文 + PyTorch源码)

    ELMo的概念也是很早就出了,应该是18年初的事情了.但我仍然是后知后觉,居然还是等BERT出来很久之后,才知道有这么个东西.这两天才仔细看了下论文和源码,在这里做一些记录,如果有不详实的地方,欢迎指 ...

  2. 神经网络入门——6and感知机

    AND 感知器练习       AND 感知器的权重和偏置项是什么? 把权重(weight1, weight2)和偏置项 bias 设置成正确的值,使得 AND 可以实现上图中的运算.   在这个例子 ...

  3. Java JDBC学习实战(一): JDBC的基本操作

    一.JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager,管理JDBC驱动的服务类,主要通过它获取Connect ...

  4. LRJ 3-7

    #define _CRT_SECURE_NO_WARNINGS #include <cstdio> int main() { int T; int m, n; ][]; // 4 < ...

  5. halcon坐标转换(机器人坐标转换用)

    #图像坐标r:=[431, 355, 507, 53, 507]c:=[505, 543, 316, 127, 883]#物理坐标(例如机器人坐标)r1:=[0, 2.0, -2.0, 10, -2. ...

  6. Python--day61--Django项目配置相关

    static文件查找:

  7. 降智严重——nowcoder练习赛46&&codeforces #561 Div2

    两场比赛降智不停,熬夜爆肝更掉rating nowcoder: https://ac.nowcoder.com/acm/contest/894#question T1:水题 T2:考虑a和b的子区间! ...

  8. 本地安装配置redis

    Windows中redis的下载及安装.设置   本文是转载自:https://www.cnblogs.com/jylee/p/9844965.html 下载地址: https://github.co ...

  9. MySQL——修改视图

    修改视图是指修改数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性. 1.  用  CREATE  OR  REPLACE   VIEW  语句修改视图 语法格式 ...

  10. HDU 5912 Fraction(模拟)

    Problem Description Mr. Frog recently studied how to add two fractions up, and he came up with an ev ...