[英]react-final-form with multiple select
我正在嘗試使用 react-final-form 通過 Material-UI 構建一個具有多值 Select 組件的表單。 不知何故,使用單個選擇,我可以獲得值,但使用多個,則不能。 不知何故,似乎 react-final-form 在內部擁有自己的價值。
這是 Material-UI 中用於構建多個 Select 的指導鏈接:
https://codesandbox.io/s/sr6pf
我試圖在我的表單中復制第一個示例(不使用 react 鈎子),但我仍然錯過了什么?
https://codesandbox.io/embed/react-final-form-material-ui-example-jfmoe
我應該向我的組件添加什么才能使這項工作?
謝謝,
由於某些原因,我設法為我自己的問題找出了解決方案。 正確的答案是創建一個自定義的 MultiSelect 組件,而不是重用來自final-form-material-ui
。
注意:我嘗試使用<Select />
from final-form-material-ui
但是向組件添加multiple
prop 不會傳遞給 ,這很奇怪。
所以,我的自定義組件看起來像這樣,幾乎類似於他們 github 中添加了multiple
prop 的組件。
import React from 'react'; import FormControl from '@material-ui/core/FormControl'; import FormHelperText from '@material-ui/core/FormHelperText'; import InputLabel from '@material-ui/core/InputLabel'; import Select from '@material-ui/core/Select'; function SelectMulti({ input: { name, value, onChange, ...restInput }, meta, label, formControlProps, ...rest }) { const showError = ((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) && meta.touched; return ( <FormControl {...formControlProps} error={showError}> <InputLabel htmlFor={name} shrink> {label} </InputLabel> <Select {...rest} multiple name={name} value={value} onChange={onChange} inputProps={restInput} /> {showError && ( <FormHelperText>{meta.error || meta.submitError}</FormHelperText> )} </FormControl> ); } SelectMulti.propTypes = {}; export default SelectMulti;
希望這對將來的人有所幫助
我能夠通過將fomat
設置為這樣來解決這個問題
<Field
name="concepts"
component={Select}
displayEmpty={trie}
multiple={true}
value={[]}
format={value => value || []}
/>
根據https://github.com/erikras/redux-form-material-ui/issues/212#issuecomment-358376925
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.