Javascript React本机选择器无法初始化默认值
我有一个选择器,我必须在初始化选择器时显示默认值,但selectedValue不会在第一次调用时触发 这是我的选择:Javascript React本机选择器无法初始化默认值,javascript,reactjs,react-native,redux,Javascript,Reactjs,React Native,Redux,我有一个选择器,我必须在初始化选择器时显示默认值,但selectedValue不会在第一次调用时触发 这是我的选择: <Picker selectedValue={this.props.expense.currency} onValueChange={(val) => { let expenses = [...this.props.expense]; expenses[index].currency = val; thi
<Picker
selectedValue={this.props.expense.currency}
onValueChange={(val) => {
let expenses = [...this.props.expense];
expenses[index].currency = val;
this.props.setExpense(expenses);
}}>
<Picker.Item label='Select Money' value='default'/>
{
loginType.currency.map((i) => {
return (<Picker.Item label={i.TYPE} value={i}/>)
})
}
</Picker>
它必须附带默认的'EUR'
。但是它附带了“选择货币”
一天过去了,我找不到任何解决办法。我研究了defaultValue,但在Github页面上没有类似的内容。任何解决方案或解决方法?您应该使用与选择器项值属性类似的方法 我假设这里发生的情况是,
this.props.expense.currency
与每个Picker.Item
上的value
prop之间的对象比较失败,因此默认为第一个。尝试将值映射到代码而不是完整对象,如下所示:
<Picker
selectedValue={this.props.expense.currency.CODE}
onValueChange={(val) => {
let expenses = [...this.props.expense];
let newVal = loginType.currency.find(item => item.CODE === val)
expenses[index].currency = newVal;
this.props.setExpense(expenses);
}}>
<Picker.Item label='Select Money' value='default'/>
{
loginType.currency.map((i) => {
return (<Picker.Item label={i.TYPE} value={i.CODE}/>)
})
}
</Picker>
{
let expenses=[…this.props.expense];
让newVal=loginType.currency.find(item=>item.CODE==val)
费用[指数]。货币=新值;
本.道具.设置费用(费用);
}}>
{
loginType.currency.map((i)=>{
返回()
})
}
您应该使用与选择器项目值属性类似的东西
我假设这里发生的情况是,this.props.expense.currency
与每个Picker.Item
上的value
prop之间的对象比较失败,因此默认为第一个。尝试将值映射到代码而不是完整对象,如下所示:
<Picker
selectedValue={this.props.expense.currency.CODE}
onValueChange={(val) => {
let expenses = [...this.props.expense];
let newVal = loginType.currency.find(item => item.CODE === val)
expenses[index].currency = newVal;
this.props.setExpense(expenses);
}}>
<Picker.Item label='Select Money' value='default'/>
{
loginType.currency.map((i) => {
return (<Picker.Item label={i.TYPE} value={i.CODE}/>)
})
}
</Picker>
{
let expenses=[…this.props.expense];
让newVal=loginType.currency.find(item=>item.CODE==val)
费用[指数]。货币=新值;
本.道具.设置费用(费用);
}}>
{
loginType.currency.map((i)=>{
返回()
})
}