【发布时间】:2021-02-28 22:56:19
【问题描述】:
我正在尝试创建一个简单的 Expo Snack,它可以在用户选择的两种货币之间进行转换。
当有人从下拉列表中选择一个选项时,我有两个状态变量会更新,我想使用这些状态变量的值从获取中获取数据。
<Picker
selectedValue={this.state.curr1}
style={{ height: 25, width: 125 }}
onValueChange={(itemValue, itemIndex) => this.setState({ curr1: itemValue })}>
<Picker.Item label="US Dollar" value="USD" />
<Picker.Item label="Euro" value="EUR" />
</Picker>
所以我在这里将 state 变量的值设置为 USD 或 EUR。
convert() {
fetch('https://open.exchangerate-api.com/v6/latest')
.then((response) => response.json())
.then((json) => {
const currency1 = this.state.curr1;
const currency2 = this.state.curr2;
alert(currency1);
alert(currency2);
const currRate1 = json.rates.currency1;
const currRate2 = json.rates.currency2;
alert(currRate1);
alert(currRate2);
这就是我卡住的地方。第一个警报 (Currency1&2) 显示值为 USD 和 EUR。 但是,当尝试使用它们来调用下半年的费率时,我对两者都“未定义”。
如果我这样做
json.rates.EUR;
json.rates.USD;
它正确调用费率。无法准确确定如何格式化,因此我可以使用选择器中的状态变量来调用费率。
【问题讨论】:
标签: javascript reactjs expo