В моем store.js я инициирую объект
let exchangeRates = {
GBPtoUSD: 0, // American dollar
GBPtoEUR: 0, // Euro
GBPtoCAD: 0, // Canadian dollar
GBPtoINR: 0, // Indian rupee
GBPtoCHF: 0 //Swiss franc
}
Затем я устанавливаю его значение с помощью
function getExchangeRates() {
return axios.get('https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD,EUR,CAD,CHF,INR')
.then((response)=> {
exchangeRates.GBPtoUSD = response.data.rates.USD;
exchangeRates.GBPtoEUR = response.data.rates.EUR;
exchangeRates.GBPtoCAD = response.data.rates.CAD;
exchangeRates.GBPtoINR = response.data.rates.INR;
exchangeRates.GBPtoCHF = response.data.rates.CHF;
})
.catch((error)=> {console.log(error)})
}
Мое состояние получает значения, назначенные следующим образом
state: {
GBPtoUSD: exchangeRates.GBPtoUSD, // American dollar
GBPtoEUR: exchangeRates.GBPtoEUR, // Euro
GBPtoCAD: exchangeRates.GBPtoCAD, // Canadian dollar
GBPtoINR: exchangeRates.GBPtoINR, // Indian rupee
GBPtoCHF: exchangeRates.GBPtoCHF //Swiss franc
}
Затем я настраиваю геттеры, такие как
getGBPtoUSD: state => {
return state.GBPtoUSD;
},
Проблема в том, что когда позже я использую этот геттер в своем компоненте, как это
...mapGetters( [ "getGBPtoUSD" ] )
<li class="list-group-item py-3 ">
{{ precise(userInputPrice) }}£ in USD is
{{ precise(userInputPrice * getGBPtoUSD()) }} US dollars
</li>
Я получаю getGBPtoUSD как 0 - начальное состояние.
Как я могу это исправить, чтобы значение состояния фактически назначалось извне?Мой подход к этому явно не работает.
EDIT1
Хорошо, так что
exchangeRates.GBPtoUSD = response.data.rates.USD;
console.log(exchangeRates.GBPtoUSD)
записывает правильное значение около 1,27.Так где я облажался?