Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React本机选择器无法初始化默认值_Javascript_Reactjs_React Native_Redux - Fatal编程技术网

Javascript React本机选择器无法初始化默认值

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

我有一个选择器,我必须在初始化选择器时显示默认值,但selectedValue不会在第一次调用时触发

这是我的选择:

<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)=>{
返回()
})
}