Antd Select組件結合使用出現must set key for children問題

1、如下狀況可能致使錯誤發生

出現這個問題的首要條件是由於Select的mode 設置成multiple or tags數組

1. Select的defaultValue使用了空字符串

例如:ui

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>

2、解決辦法

1. 若是你不須要默認值, 直接設置爲空數組: defaultValue = []

注意: 空數組 != 含空字符串數組code

<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>
相關文章
相關標籤/搜索