【问题标题】:React - How to set default value in react-selectReact - 如何在 react-select 中设置默认值
【发布时间】:2018-09-21 04:52:06
【问题描述】:

我在我的应用程序中使用了react-select 来显示选择框。下面是我选择的代码。

<Select
       className="custom-form-control mb-2"
       name="organization_options"
       options={this.organizationOptions()}
       placeholder={false}
       onChange={this.handleChange.bind(this)}
       value={selectedValue === "" ? this.organizationOptions()[0] : selectedValue}
/>

以下是我在选择框中已有的选项

0: {value: "62", label: "Dfdf"}
1: {value: "128", label: "Dfdfdsf"}
2: {value: "151", label: "Fgfdgdfh"}
3: {value: "121", label: "Hhhfas"}
4: {value: "55", label: "My Sensor_56"}
5: {value: "13", label: "New Org"}
6: {value: "44", label: "Org 2"}
7: {value: "148", label: "Testing App"}

我有来自查询字符串的值,例如 value="55",如果该值存在,我想在选择框中显示该选定值。

我尝试了两种不同的方式,如下所示,

1)

selectedValue='55'
defaultValue={this.organizationOptions().find(op => {
   return op.value === selectedValue
})}

2

defaultValue={{value: "55", label: "My Sensor_56"}}

但是没有人工作,有人可以告诉我如何设置 defaultV 如果我没有选择的值,是否已经有或不显示默认值?

【问题讨论】:

  • 你用的是什么版本
  • ` "react-select": "^2.0.0"`
  • defaultValue 应该是 55 仅在您的情况下。由于 defaultValue 是选择选项。
  • @PardeepDhingra 我已经尝试过类似 defaultValue="55",但它不起作用。 react-select 将整个对象作为选项,就像这样 {value: "55", label: "My Sensor_56"} .
  • 我尝试了一个 react-select value={{value: "55", label: "My Sensor_56"}} 对我来说效果很好的示例,

标签: reactjs react-select


【解决方案1】:

这里我们在组织选项中找到默认值并将其作为值传递给 Select:

import React from 'react';
import Select from 'react-select';

export default class App extends React.Component {
  organizationOptions = () => {
    return [
       {value: "62", label: "Dfdf"},
       {value: "128", label: "Dfdfdsf"},
       {value: "151", label: "Fgfdgdfh"},
       {value: "121", label: "Hhhfas"},
       {value: "55", label: "My Sensor_56"},
       {value: "13", label: "New Org"},
       {value: "44", label: "Org 2"},
      {value: "148", label: "Testing App"}
    ]
  }

  render() {
    const selectedValue = "55"
    return (
      <Select
        value={this.organizationOptions().find(op => {
           return op.value === selectedValue
        })}
        onChange={this.handleChange}
        options={this.organizationOptions()}
      />
    );
  }
}

【讨论】:

  • 这是你的答案吗?就像您在回答中提到的那样,它已经在工作了。我想知道如何设置默认值
  • 这是为我工作的例子。设置默认值value={ this.organizationOptions()[1] }
  • 欢迎@Vishal
  • @PardeepDhingra 如果您想将默认值设置为您输入的内容并且它不存在于选项数组中,该怎么办。你是怎么做的?
  • 这是否也设置了选定的标签?
猜你喜欢
  • 2017-09-15
  • 2022-08-10
  • 2018-09-17
  • 2019-08-22
  • 2021-11-28
  • 2020-06-23
  • 1970-01-01
  • 2021-12-22
  • 2021-08-25
相关资源
最近更新 更多