有两个选择字段,Language和Currency。我正在两个字段中动态显示值,但现在我必须更改下拉值并按下按钮我正在调用 Onclick 功能并更新到 server 。
- 如果不更改首选语言中的 cvalue 并更新其显示未定义
- preferredCurrency - 如果我为此使用下面的代码,则给出布尔值。
请检查我的代码并更正它。
我必须在两个选择字段中动态显示数据,并且在更改选择字段中的值并更新它应该更新当前选定值之后。
this.state = { languageAndCurrecny:{
preferredLanguage: navigation.state.params.customerInfo[0].billingPreferenceDetails.presentationLanguageCode,
},
currencyChangedValue:{
preferredCurrency: navigation.state.params.customerInfo[0].billingPreferenceDetails.preferedCurrencyCode,
}
this.handleChangeCurrency=this.handleChangeCurrency.bind(this);
}
OnButtonClick = async (preferredLanguage, preferredCurrency) => {
const { OnButtonClick } = this.props;
await OnButtonClick(preferredLanguage, preferredCurrency);
this.setState({
preferredCurrency:'',
preferredLanguage:'',
})
}
languageChanged = (key, val) => {
this.handleChange({ field: "preferredLanguage" }, val);
};
handleChange = (props, e) => {
let tempObj = this.state.languageAndCurrecny;
tempObj[props.field] = e;
this.setState({ preferredLanguage: tempObj });
};
currencyChanged = (key, val) => {
this.handleChangeCurrency({ field: "preferredCurrency" }, val);
};
handleChangeCurrency = (props, e) => {
let tempObj = this.state.currencyChangedValue;
tempObj[props.field] = e;
this.setState({ preferredCurrency: tempObj });
};
render (
let {languageAndCurrecny,currencyChangedValue} = this.state;
const { navigation, clmmasterData } = this.props;
const { masterData, language } = clmmasterData;
let currencyData=[];
masterData.preferredCurrency.map(({ code: value, name: label }) => {
currencyData.push({ value, label });
});
let languageData=[];
masterData.language.map(({ code: value, name: label }) => {
languageData.push({ value, label });
});
return (
<View style={{ padding: 20 }}>
<Form style={{ width: '100%' }}>
<SelectField
label="Presentation Language"
node="presentationLanguage"
options={languageData}
value={languageAndCurrency.preferredLanguage}
onChange={this.languageChanged}
that={this}
setIcon={true}
img="LANGUAGE"
/>
<SelectField
label="Preferred Currency"
options={currencyData}
value={preferredCurrency}
node="preferredCurrency"
onChange={this.handleChangeCurrency}
that={this}
setIcon={true}
img="CURRENCY"
/>
<View style={{ marginTop: 50 }}>
<PrimaryBtn label={'submit'} disabled={false} onPress={()=> this.OnButtonClick(this.state.preferredLanguage,this.state.preferredCurrency,)}/>
</View>
谢谢..请帮忙