Javascript 反应选择中的默认值

Javascript 反应选择中的默认值,javascript,reactjs,redux,redux-form,react-select,Javascript,Reactjs,Redux,Redux Form,React Select,我有一个react-select组件,它与redux表单兼容。我的SelectInput组件如下所示: const MySelect = props => ( <Select {...props} value={props.input.value} onChange={value => props.input.onChange(value)} onBlur={() => props.input.onBlur(props.input.va

我有一个react-select组件,它与redux表单兼容。我的SelectInput组件如下所示:

const MySelect = props => (
  <Select
    {...props}
    value={props.input.value}
    onChange={value => props.input.onChange(value)}
    onBlur={() => props.input.onBlur(props.input.value)}
    options={props.options}
    placeholder={props.placeholder}
  />
);
constmyselect=props=>(
props.input.onChange(值)}
onBlur={()=>props.input.onBlur(props.input.value)}
选项={props.options}
占位符={props.placeholder}
/>
);
我在我的组件中呈现它,它是一种形式

<div className="select-box__container">
                <Field
                  id="side"
                  name="side"
                  component={SelectInput}
                  options={sideOptions}
                  value="Any"
                  clearable={false}
                  // placeholder="Select Side"
                />
              </div>


我还为容器设置了初始值,以便该组件的状态具有初始值并且正在工作。我的问题是,当我渲染组件时,初始值不会显示在选择框中,它是空的。为什么会发生这种情况?

您的
选项的形状是什么通常,它是具有值和标签特性的对象数组:

[
  { label: "I like", value: "icecream" },
  { label: "Any", value: "Any" }
]
您可以将react select的初始
值设置为选项数组中的一个值。
或者,您也可以将其设置为不存在的选项,方法是为其提供一个带有标签和值的对象。
标签
显示为选择的
值。确实有点让人困惑,尽管这有点道理

TL;DR

value={{value:0,标签:'Any'}
-就可以了

您还可以将初始值设置为选项的值,它将显示出来。这意味着,如果您的选项中有
{value:“Any”,标签:“Any”}
value={'Any'}
将在选择框中显示“Any”


希望这对你有用

遇到了类似的问题。即使正确地传递了输入值字段,它也会一直处于未设置状态。在这种情况下,您可以创建一个具有值prop(以及所有其他必需的prop)的
input
对象,也可以使用一个单独的prop
selectedValue

 <Field
  id="side"
  name="side"
  component={SelectInput}
  options={sideOptions}
  value="Any"
  clearable={false}
  selectedValue={this.props.myvalue}
 />

const MySelect = props => (
  <Select
   {...props}
   value={(props.input.value) ? props.input.value : props.selectedValue}
   onChange={value => props.input.onChange(value)}
   onBlur={() => props.input.onBlur(props.input.value)}
   options={props.options}
   placeholder={props.placeholder}
  />
);

const MySelect=props=>(
props.input.onChange(值)}
onBlur={()=>props.input.onBlur(props.input.value)}
选项={props.options}
占位符={props.placeholder}
/>
);

在Select中应该选择什么您期望的值'any'?确切地说,我想用一个值any来测试我的Select,看看它是否是用我的组件呈现的,但它没有。试试这个:交换这两行,而不是
{…props}value={props.input.value}
使用这个:
value={props.input.value}{…props}
在选择组件中。@MayankShukla没有其他想法吗?我想像这样编辑我的selectInput props.input.onChange(value)}//onBlur={()=>props.input.onBlur(props.input.value)}options={props.options}占位符={props.placeholder}//defaultValue=“Any”/>但不起作用……我的选项是这样的对象数组:const sideOptions=[{label:'Any',value:'Any'},{label:'Buy',value:'Buy'},{label:'Sell',value:'Sell'}];。我想通过选择Input将标签:Any与Any值结合起来。我已经设置了value={{value=0,label='Any'}},但它最终没有起作用。更具体地说,我应该添加initialValue={props.initialValue},然后在我的组件initialValue={{{label:'Any,value:'Any}中添加initialValue吗?很抱歉延迟了回复!您只需将react select上的
value
prop设置为初始值即可。反应选择中没有
initialValue
prop。希望这能帮你解决问题。是的,但这是为react select 1.x和2.x准备的。