Antd Select组件结合使用出现must set key for <rc-animate> children问题
一、以下情况可能导致错误发生
出现这个问题的首要条件是因为Select的mode 设置成
multiple
ortags
1. Select的defaultValue使用了空字符串
例如:
const emptyValue = ''
const emptyValueArr = ['1', '']
<Select
mode="tags"
defaultValue= emptyValue || emptyValueArr
>
{
[1, 2].map((item, index) => (
<Option key={index} value={item}>{item}</Option>
))
}
</Select>
2. 结合Form的initialValue包含空字符串
<FormItem {...formItemLayout} label="负责人">
{getFieldDecorator('ownersAsList', {
rules: [{
required: true,
message: '负责人不能为空'
}],
initialValue: ownersAsList || ['']
})(
<Select
mode="tags"
>
{
ownersList.map((item, index) => (
<Option key={index} value={item}>{item}</Option>
))
}
</Select>
)}
</FormItem>
二、解决办法
1. 如果你不需要默认值, 直接设置为空数组: defaultValue = []
注意: 空数组 != 含空字符串数组
<Select
mode="tags"
defaultValue = []
>
{
[1, 2].map((item, index) => (
<Option key={index} value={item}>{item}</Option>
))
}
</Select>
2. 如果希望有默认选中值: initialValue: ownersAsList || ['默认值']
<FormItem {...formItemLayout} label="负责人">
{getFieldDecorator('ownersAsList', {
rules: [{
required: true,
message: '负责人不能为空'
}],
initialValue: ownersAsList || ['默认值']
})(
<Select mode="tags" >
{
ownersList.map((item, index) => (
<Option key={index} value={item}>{item}</Option>
))
}
</Select>
)}
</FormItem>
Antd Select组件结合使用出现must set key for <rc-animate> children问题的更多相关文章
- antd Select进阶功能 动态更新、函数防抖
一.动态更新Options Antd Select自带的搜索功能很多时候需要结合后端的接口,输入一个关键字的时候会自动更新选择器的选项. 下面列一些注意点 基础实现 选择器选项必须和每次更新的数据挂钩 ...
- 改变select组件的option选中状态的快捷方法
以前我都是在<option>标签处通过判断value是否与其中一个相同然后输出selected="selected"来处理的,今天发现可以直接能过Js改变<sel ...
- select组件2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- select组件
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 如何实现select组件的选择输入过滤作用
实现select组件的选择输入过滤作用的js代码如下: /** *其中//******之间的部分显示的是在没有选择输入过滤功能的代码上加入的功能代码 ** / (function ( $ ) { $. ...
- freemarker写select组件(一)
freemarker写select组件 1.宏定义 <#macro select id datas> <select id="${id}" name=" ...
- freemarker写select组件报错总结(一)
1.具体错误如下 六月 25, 2014 11:26:29 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template pr ...
- freemarker写select组件(五)
freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...
- freemarker写select组件(四)
freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...
随机推荐
- python学习笔记5-字典
# 字典(哈希映射.关联数组) d0 = {'a': 2, [0,1]:[1,2,3]} # TypeError: unhashable type: 'list' # 值可以是任意数据类型,但键不能是 ...
- allegro17.2 错误记录
1.网表导入PCB时出现如下错误::error with pin number 'P11'in device ' lfbga176'::Unable to find pin name in adfnc ...
- vue深度监控数据改变,缓存数据到本地
项目效果图: var vm = new Vue({ el:'#app', data:{ students:[], }, watch:{ students:{ handler(){ localStora ...
- Percona-Toolkit 之 pt-table-sync 总结
pt-table-sync - Synchronize MySQL table data efficiently. pt-table-sync synchronizes data efficientl ...
- How to Preloading content with rel preload
The preload value of the <link> element's rel attribute allows you to write declarative fetch ...
- C++ 用三元组表示法存储稀疏矩阵
若有一个矩阵(m*n),其中非0元素个数远少于数值为0的元素个数,若开辟一个m*n大空间,来存储这样一个很多元素值为0的矩阵,浪费空间,于是我们只存储这些非0的元素的下标及数值 用一个结构体——三元组 ...
- 10#Windows注册表的那些事儿
引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...
- 【JavaScript】第8章读书笔记
本章常用的DOM方法 切记,页面的逻辑是:创建新的元素,给新的元素创建内容,通过appendChild把新元素的内容插入到新元素节点中:通过appendChild把新元素插入到已有元素节点中 书上的老 ...
- 关于config文件中AppSettings和ConnectionStrings的用法跟区别(转)
转自:http://www.cnblogs.com/bindot/archive/2013/03/07/def.html
- CLASS 类 __getattr__
class Chain(object): def __init__(self, path=''): self._path = path def __getattr__(self, path): ret ...