AntDesign getFieldDecorator 获取自定义组件的值

1.自定义或第三方的表单控件,也可以与 Form 组件一起使用。只要该组件遵循以下的约定:

(1)提供受控属性 value 或其它与 valuePropName 的值同名的属性。

(2)提供 onChange 事件或 trigger 的值同名的事件。

(3)不能是函数式组件。

2.创建组件

这里通过自定义的搜索输入框来展示

let timeout;
let currentValue;
function fetch(value, callback) {
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
currentValue = value;
function getData() {
const params = {
size: 10,
name: value
};
apiSubwayList(params).then(
d => {
if (currentValue === value) {
const result = d.list;
const data = [];
result.forEach(r => {
data.push({
value: r.subwayId,
text: r.name,
});
});
callback(data);
}
}
);
}
timeout = setTimeout(getData, 300);
}
class SearchInput extends PureComponent {
state = {
data: [],
value: undefined
};
handleSearch = value => {
fetch(value, data => this.setState({data}));
};
handleChange = value => {
this.setState({value});
this.props.onChange(value)
};
render() {
const options = this.state.data.map(d => <Option key={d.value}>{d.text}</Option>);
return (
<div>
<Select
showSearch
value={this.state.value}
placeholder={this.props.placeholder}
// style={this.props.style}
defaultActiveFirstOption={false}
showArrow={false}
filterOption={false}
onSearch={this.handleSearch}
onChange={this.handleChange}
notFoundContent={null}
>
{options}
</Select>
<span>输入并选择对应选项,否则无效</span>
</div>
)
}
}
SearchInput.propTypes = {
data: PropTypes.array,
value: PropTypes.string,
onChange: PropTypes.func
};
export default SearchInput;

可以看到,使用getFieldDecorator时,会通过props的形式向自定义的组件传入onChange回调方法,使用这个回调函数会通知getFieldDecorator所绑定字段的值的变化。

3.使用组件

<FormItem
{...formItemLayout}
label={<span>所在地铁站</span>}
>
{getFieldDecorator('owner', {
rules: [{
required: true,
message: '请选择所在地铁站',
},
],
})(
<SearchInput placeholder="输入并选择所属地铁"/>)}
</FormItem>

使用getFieldDecorator会隐式的传入onChange回调方法,当然,如果想传入其他参数,也可以像placeholder那样显示的传入。

AntDesign getFieldDecorator 获取自定义组件的值的更多相关文章

  1. ant-design getFieldDecorator 无法获取自定义组件的值

    1.自定义或第三方的表单控件,也可以与 Form 组件一起使用.只要该组件遵循以下的约定: (1)提供受控属性 value 或其它与 valuePropName 的值同名的属性. (2)提供 onCh ...

  2. Vue 父组件主动获取子组件的值,子组件主动获取父组件的值

    父组件主动获取子组件的值 1. 在调用子组件的时候定义一个ref-> ref="header"2. 在父组件中通过this.$refs.header.属性,调用子组件的属性, ...

  3. vue3 template refs dom的引用、组件的引用、获取子组件的值

    介绍 通过 ref() 还可以引用页面上的元素或组件. DOM 的引用 <template> <div> <h3 ref="h3Ref">Tem ...

  4. jsp获取单选按钮组件的值

    jsp获取单选按钮组件的值 1.首先,写一个带有单选按钮组件的前台页 1 <%@ page language="java" contentType="text/ht ...

  5. Vue自定义组件插入值

    我们自定义组件的时候有时候需要往组件里面插一些内容: //定义一个组件test,插值内容用slog来代替 export default { name: 'test', template:` <d ...

  6. antd 父组件获取子组件中form表单的值

    还是拿代码来讲吧,详情见注释 子组件 import React, { Component } from 'react'; import { Form, Input } from 'antd'; con ...

  7. Android开发之自定义组件和接口回调

    说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...

  8. 微信小程序页面调用自定义组件内的事件

    微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...

  9. vue子组件改变父组件的值

    1 在父组件的coment绑定事件 <template> <div :class="classObj" class="app-wrapper" ...

随机推荐

  1. ]ubuntu开机自动挂载的ntfs硬盘的权限问题

    原文地址:ubuntu开机自动挂载的ntfs硬盘的权限问题 在linux操作系统中, 挂载是一个非常重要的功能,使用非常频繁. 它指将一个设备(通常是存储设备)挂接到一个已存在的目录上. (这个目录可 ...

  2. Taglib自定义万能标签扩展 DownLoad

    http://www.thinkphp.cn/extend/538.html 用ThinkPHP的标签做网站觉得不够快速,就自己写了一个扩展,感觉挺好的,分享出来,给有需要的TPER. 复制代码 &l ...

  3. HTML静态网页---样式属性

    一.背景与前景 1.背景: 2.前景字体: 二.边界和边框 border(表格边框.样式等).margin(表外间距).padding(内容与单元格间距). 三.列表与方块 width.height. ...

  4. 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)

    自己也是一个初学者,主要是总结一下最近的学习,大佬见笑. 中文分词说到命名实体抽取,先要了解一下基于字标注的中文分词.比如一句话 "我爱北京天安门”. 分词的结果可以是 “我/爱/北京/天安 ...

  5. iptables [-t table] 指定规则表

    -t 参数用来,内建的规则表有三个,分别是:nat.mangle 和 filter,当未指定规则表时,则一律视为是 filter.个规则表的功能如下: nat:此规则表拥有 PREROUTING 和 ...

  6. 【codeforces 764B】Timofey and cubes

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. idea启用列模式的方式小结

    (1)alt+鼠标左键----实现的是几个连续列要向上或者向下拉,能够同时操作多行数据. (2)Shift+alt+鼠标左键----可以实现点选跨行的列模式同时操作,而且不通行可以点选不通列,进行跨行 ...

  8. LR性能测试自动化集成JENKINS

    LR11不支持JENKINS集成,解决方案可以使用BAT代替执行,JENKINS定时调用BAT执行性能测试用例.   1. 先随便录制l一个LR脚本,保存为 D:\TEST\test01 2. 打开 ...

  9. Linux 内核引用计数的操作

    一个 kobject 的其中一个关键函数是作为一个引用计数器, 给一个它被嵌入的对象. 只 要对这个对象的引用存在, 这个对象( 和支持它的代码) 必须继续存在. 来操作一个 kobject 的引用计 ...

  10. CodeForces Goodbye 2017

    传送门 A - New Year and Counting Cards •题意 有n张牌,正面有字母,反面有数字 其中元音字母$a,e,o,i,u$的另一面必须对应$0,2,4,6,8$的偶数 其他字 ...