标签: react-select

如何使用反应钩子形式在反应选择延迟一段时间后设置defaultValue

我正在使用带有react-hook-form库的react-select下拉菜单。我正在调用 api 来获取反应选择的默认值。最初,下拉列表无法预填充默认值。所以我找到了一个解决方法,当我从 api 获取数据时重新渲染整个 JSX。

<form onSubmit={handleSubmit(saveData)}>
{!countryValue && (
      <Controller
        name="country"
        control={control}
        render={({ onChange, value, ref }) => (
          <Select
            options={country}
            value={country.find((c) => c.value === value)}
            onChange={(val) => onChange(val.value)}
          />
        )}
        rules={{ required: true }}
      />
    )}
    {countryValue && (
      <Controller
        name="country"
        control={control}
        render={({ onChange, value, ref }) => (
          <Select
            options={country}
            value={country.find((c) => c.value === value)}
            onChange={(val) => onChange(val.value)}
            defaultValue={country.find((c) => c.value === countryValue)}
          />
        )}
        rules={{ required: true }}
      />
    )}
{errors.country && <div>Field is rquired</div>} …
Run Code Online (Sandbox Code Playgroud)

reactjs react-select react-hook-form

1
推荐指数
1
解决办法
2万
查看次数

反应选择更改菜单高度

有没有办法增加菜单高度?我可以用属性来降低菜单的高度maxMenuHeight。但我找不到增加其高度的方法。我什至尝试过minMenuHeight财产,但那不起作用。这是我的代码以及自定义样式:

const defaultStyles = {
        control: (base, state) => ({
            ...base,
        }),
        menu: base => ({
            ...base,
        }),
        menuList: base => ({
            ...base,
        })
    }

    const customStyles = {
        control: (base, state) => ({
            ...base,
            background: "#000000",
            // match with the menu
            borderRadius: state.isFocused ? "3px 3px 0 0" : 3,
            // Overwrittes the different states of border
            // Removes weird border around container
            boxShadow: state.isFocused ? null : null,
        }),
        menu: base => ({
            ...base, …
Run Code Online (Sandbox Code Playgroud)

reactjs react-select

1
推荐指数
1
解决办法
7184
查看次数

在react-select中获取onChange的选定值

我正在使用反应选择包并使用自定义选项数组来填充数据(即自定义标签等)

我已经看到了一些解决方案,他们没有使用选项道具来设置值,或者只是使用默认数组模式来填充数据并设置并获取它onChange,但是在我的情况下我无法获取值:

  • 如果我设置value属性,它不会让我选择选项

  • 如果我传递相同的(option) => option.phaseText) onChange,它将以字符串形式返回

    const HandelChange = (obj) => {
        console.log(obj);
    };
    const [dataPhase, setDataPhase] = useState([
        { phaseID: 1, phaseText: "Item 1" },
        { phaseID: 2, phaseText: "Item 2" },
        { phaseID: 3, phaseText: "Item 3" },
        { phaseID: 4, phaseText: "Item 4" },
        { phaseID: 5, phaseText: "Item 5" },
    ]);
    
    <Select
       isSearchable
        options={dataPhase}
        getOptionLabel={(option) => option.phaseText}
        getOptionValue={(option) => option.phaseText}
        className="diMultiSelect"
        classNamePrefix="diSelect"
        styles={styles}
        maxMenuHeight={150}
        value={(option) => …
    Run Code Online (Sandbox Code Playgroud)

reactjs react-select

1
推荐指数
1
解决办法
7295
查看次数

React Hook Form 和 React Select 未按预期工作

我试图Controller按照文档(https://react-hook-form.com/get-started#IntegratingControlledInputs)使用包装器组件将 React Select 包装在 React Hook Form 内

            <Controller
              name="ShiftCaptain"
              control={control}
              render={({ field }) => (
                <Select
                  {...field}
                  value={selectValue}
                  options={options}
                  placeholder={"Select Person"}
                  onChange={(e) => setSelectValue(e)}
                />
              )}
            />
Run Code Online (Sandbox Code Playgroud)

提交表单时,React Select 中捕获的值不会填充到 React Hook Forms 中: 在此输入图像描述

有任何想法吗?

TIA

reactjs react-select react-hook-form

1
推荐指数
1
解决办法
6434
查看次数

动态更改 React Select options 属性

我通过 React Select 有两个选择输入。我的第二个选择的 options 属性应该根据第一个反应选择中的值动态变化。做这个的最好方式是什么?

我的第一个选择:

      <Select
        styles={colourStyles}
        className="basic-single"
        classNamePrefix="select"
        isClearable={isClearable}
        isSearchable={isSearchable}
        placeholder="Select service category"
        name="color"
        options={serviceCategoriesPrimary}
        onChange={(value) =>
          value !== null ? setSelectValue(value.value) : setSelectValue("")
        }
      />
Run Code Online (Sandbox Code Playgroud)

我的第二个选择:

      <Select
        styles={colourStyles}
        className="basic-single"
        classNamePrefix="select"
        isClearable={isClearable}
        isSearchable={isSearchable}
        isDisabled={selectValue === "" ? true : false}
        placeholder="Select secondary category"
        name="color"
        options={handleChooseOptions}
      />
Run Code Online (Sandbox Code Playgroud)
  const handleChooseOptions = () => {
    if(selectValue === 'Health Care'){
      return options1
    }else{
      return options2
    }
  }
Run Code Online (Sandbox Code Playgroud)

reactjs react-select material-ui

1
推荐指数
1
解决办法
1万
查看次数

使用箭头键悬停时如何设置 React-Select Option 组件的背景颜色

我可以在鼠标悬停时设置选项(React-Select)的背景颜色(如下面的代码所示)...我不明白的是如何设置背景颜色当我使用键盘上的箭头键时的一个选项。向下/向上键可以选择一个选项,但当我使用箭头键(向上/向下)将其定位在选项上时,我无法更改其背景颜色

<Select
    placeholder="Month"
    styles={{
       option: (base) => ({
           ...base,
           cursor: "pointer",
           background: "white",   // this was the mistake (I needed to remove this)
           ":hover": {
              backgroundColor: "rgb(200, 200, 200)",
            },
     }}
/>
Run Code Online (Sandbox Code Playgroud)

css select hover reactjs react-select

1
推荐指数
1
解决办法
6983
查看次数

React prop仅在选择两次后改变状态

我正在使用React Select,由于某种原因,我的状态仅在选择了两次选项后才会更改.

我有以下代码:

var React = require('react');
import Select from 'react-select';

class VehicleSelect extends React.Component {

  constructor(props) {
    super(props);

    this.state = { brandSelect: ""};

  }

  _onChange(value) {
    //console.log(value) - just to see what we recive from <Select />
    this.setState({brandSelect: value});
    console.log(this.state.brandSelect);
  }

  render() {
    var options = [
    { value: 'Volkswagen', label: 'Volkswagen' },
    { value: 'SEAT', label: 'SEAT' },
    { value: 'SKODA', label: 'SKODA' }
    ];


    return (
      <Select
          name="form-field-name"
          value={this.state.brandSelect}
          options={options}
          placeholder="Select a brand"
          searchable={false}
          onChange={this._onChange.bind(this)} …
Run Code Online (Sandbox Code Playgroud)

reactjs react-select

0
推荐指数
1
解决办法
72
查看次数

有什么方法可以防止 react-select (Select.Async) 在未聚焦时删除搜索输入值?

情况:
我有一个普通的选择(类别),它决定了从 react-select 为 Select.Async 加载了哪些选项。

问题:
假设有人在 Select.Async 中搜索一个选项,而category A被选中。然后他意识到,他正在寻找的选项只能在category B. 所以他在第一次选择时切换类别。但是当他从 Select.Async 中单击搜索框时,他所做的输入消失了,他必须再次输入。

即使我在搜索输入未聚焦时更新选项集,我是否可以做些什么来保留他的输入?

<select id="categories">
    <option value="1" selected>A</option>
    <option value="2">B</option>
    <option value="3">C</option>
</select>

<Select.Async loadOptions={load} />
Run Code Online (Sandbox Code Playgroud)

完整的代码示例

javascript reactjs react-select

0
推荐指数
1
解决办法
3543
查看次数

即使在设置之后,状态值也是未定义的

下面的函数是onChange事件,用于react-select下拉列表.this.state.value(以粗体突出显示)仅在下拉列表更改时第一次未定义.有人可以提供相同的输入.但是,状态设置在以下其他条件下.

handleSelectChange(val,event) {
  var label;
if(val.map==undefined) {
  label = val["label"];
  this.setState({value:val}) ;
}
else{
  label = val["label"];
  this.setState({value:val}) ;
}
    this.setState({dropDownSelected:true},function(){
this.props.dropDownSelected(**this.state.value**);
    })
}
Run Code Online (Sandbox Code Playgroud)

reactjs react-select

0
推荐指数
1
解决办法
89
查看次数

与formik一起使用react-select时,无法读取未定义的属性“类型”

我正在使用react-select和formik使用自动填充文本框构建表单。

<Formik
    initialValues={{
        assignedTo: task.assignedTo,
    }}
    onSubmit={(values) => {
        const updatedTask = { ...task, ...values };
        editTask(updatedTask);
    }}
    render={({ handleSubmit, handleChange, values }) => (
        <form>
            <Select type="text" name="assignedTo" options={options} onChange={handleChange} value={{ value: task.assignedTo, label: task.assignedTo }} />
        </form>
    })
/>
Run Code Online (Sandbox Code Playgroud)

引发错误 Cannot read property 'type' of undefined 在此处输入图片说明

如何解决此问题并在Formik中处理react-select?

javascript reactjs react-select react-component formik

0
推荐指数
1
解决办法
1707
查看次数