[antd] Select標簽設置默認值不展示


 1     <FormItem
 2         className={style.client}
 3         name="client"
 4         rules={[{ required: false }]}
 5         label={
 6            <div className={style.label}>
 7              <span>label</span>{' '}
 8            </div>
 9                 }
10      >
11        <Select className={style.selectClient}
12         // size='small'
13          showSearch
14           value={value}
15                   labelInValue
16                   placeholder=""
17                   // style={{ width: '96%' }}
18                   defaultActiveFirstOption={false}
19                   showArrow={false}
20                   filterOption={false}
21                   onSearch={e => handleSearch(e)}
22                   onChange={e => handleChange(e)}
23                   notFoundContent={null}
24                 >
25                   {
26                     searchData && searchData.map(data => <Option key={data.custNo}>{data.custNo}-{data.custName}</Option>)
27                   }
28                 </Select>
29         </FormItem>
30  

代碼如上,嵌入在Form中的Select組件,用form.setFieldsValue({ client: '2' })設置選中值無法實現。

經過排查,發現是因為設置了 labelInValue ,設置該屬性后,Select的選中值由Type<String> 變為Type<ReactNode>,導致設置的值不被展示。

官網對labelInValue的解釋:【是否把每個選項的 label 包裝到 value 中,會把 Select 的 value 類型從 string 變為 { value: string, label: ReactNode } 的格式】

解決方案:

  1.不使用該屬性;

  2.按照 Type<ReactNode> 格式給Select 賦值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。