Javascript 反应选择中的默认值
我有一个react-select组件,它与redux表单兼容。我的SelectInput组件如下所示: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
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
对象,也可以使用一个单独的propselectedValue
<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准备的。