Formik handleReset for sspiceific Select's with one value



我正在使用React.js和TypeScript。我还在Formik中使用react-select组件。我的问题是我想通过点击按钮重置一些特定的选择组件。我这里有两个问题:

Selectnot multi时,props.handleReset似乎不起作用。如何将if用于单选
  • 如何告诉props.handleReset只重置特定字段
  • 这是我的代码的一部分:

    <Select
    className="react-select"
    isMulti={false}
    closeMenuOnSelect={false}
    options={this.props.selectOptions.faculties}
    placeholder={T.t('gen_select_faculty')}
    value={this.props.selectOptions.faculties.find((f) => f.value === props.values.faculty_id)}
    onChange={(option: any) => {
    props.setFieldValue('faculty_id', option.value);
    props.setFieldValue('faculty', option);
    }}
    noOptionsMessage={(): string => T.t('gen_select_no_faculty')}
    />
    <button
    type="button"
    data-dismiss="modal"
    onClick={props.handleReset}
    aria-label="alert-success"
    >
    RESET
    </button>
    

    好的,这就是解决方案:

    1。要通过props.handleReset处理单个Select元素,您需要为value包括isClearable={true}null选项,如下例:

    `

    <Select
    className="react-select"
    isMulti={false}
    isClearable={true}
    closeMenuOnSelect={false}
    options={this.props.selectOptions.faculties}
    value={props.values.faculties || null}
    onChange={(option: any) => {
    props.setFieldValue('faculty_id', option.value);
    props.setFieldValue('faculty', option);
    }}
    />
    

    最新更新