antd-design Form,Select聯合使用 placeholder 不起做用問題

antd-design Form,Select聯合使用 placeholder 不起做用問題

原由

  • 最近在用antd寫表單的時候遇到個問題:Form,Select組件一塊兒使用時,設置Select組件的placeholder屬性並無起做用。以下圖:

image
image
發現Select組件的placeholder屬性並無起做用。html

排查

  • 對照官方文檔看了一下官方的代碼
<Form.Item
          label="Gender"
        >
          {getFieldDecorator('gender', {
            rules: [{ required: true, message: 'Please select your gender!' }],
          })(
            <Select
              placeholder="Select a option and change input text above"
              onChange={this.handleSelectChange}
            >
              <Option value="male">male</Option>
              <Option value="female">female</Option>
            </Select>
          )}
        </Form.Item>
  • 發現跟本身的代碼惟一的區別就是我這裏設置了這個表單項的initialValue屬性,官方文檔是這樣講的:

image

  • 對錶單內的組件使用onChange合成事件不介意使用setState以及value爲組件綁定值,介意使用initialValue設置初始化值。因此我這裏寫的也是沒問題的。
  • 沒辦法了呀,遇到這種莫名其妙的問題只能去antd-github-issues去找有沒有人提出過相同的問題了,搜了一下發現還真有!!!

image

  • 修改本身的代碼以後
<Form.Item {...formItemLayout} label="證件類型">
            {getFieldDecorator('certType', {
              initialValue: publicAccount.certType ? publicAccount.certType : undefined,
              rules: [{ required: true, message: '請選擇證件類型' }],
            })(
              <Select style={{ width: 280 }} placeholder="請選擇證件類型" onChange={this.handleCertTypeChange}>
                <Option value="1">身份證</Option>
                <Option value="2">營業執照</Option>
              </Select>,
            )}
          </Form.Item>

image

補充:

相關文章
相關標籤/搜索