#javascript #reactjs
#javascript #reactjs
Вопрос:
У меня есть функция с именем getConversionRate (), которую я создал в отдельном файле:
export function getConversionRate() {
let usaRate = 0.74;
if (isEnvironmentBFE()) {
const catName = "CATERPILLAR FINANCIAL SERVICES CORPORATION";
// If it contains Cat Financial products, make US rate 1.32.
if (detailsHtml.dealerId === catName) {
usaRate = 1.32;
}
}
}
Я импортировал getConversionRate() в другой файл, и я хочу импортировать эту функцию внутри другой функции:
//PRICE
if (
props.jsonDataProduct.price != null amp;amp;
props.jsonDataProduct.price.text != null
) {
detailsHtml.itemPriceCA = formatPrice(
props.jsonDataProduct.price.text,
props.lang
);
detailsHtml.itemPriceUS = formatPrice(
props.jsonDataProduct.price.text,
props.lang,
false,
"US"
);
}
Вот оригинальная функция formatPrice():
export function formatPrice(
price,
lang,
inclCurTxt?: boolean,
currency?: string
) {
let formattedPrice = price;
const usaRate = 0.74;
if (lang === "fr") {
//FRENCH
const currencyText = inclCurTxt ? " CA" : "";
if (currency != null amp;amp; currency === "US") {
//USD
formattedPrice =
accounting.formatMoney(Number(price) * usaRate, "", 0, " ")
" $"
currencyText;
} else {
//CAD
formattedPrice =
accounting.formatMoney(price, "", 0, " ") " $" currencyText;
}
} else {
//ENGLISH
const currencyText = inclCurTxt ? " USD" : "";
if (currency != null amp;amp; currency === "US") {
//USD
formattedPrice =
accounting.formatMoney(Number(price) * usaRate, "$", 0) currencyText;
} else {
//CAD
formattedPrice = accounting.formatMoney(price, "$", 0) currencyText;
}
}
return formattedPrice;
}
И оба itemPriceCA и itemPriceUS будут отображаться на странице в React, отражая правильную цену на основе getConversionRate():
<div className="price-wrap">
<img
className="flagimg"
src={Constants.IMAGES.FLAG_CA}
alt="CDN $"
/>
<span className="data_price_cad">{detailsHtml.itemPriceCA}</span>
</div>
<div className="price-wrap">
<img
className="flagimg"
src={Constants.IMAGES.FLAG_US}
alt="US $"
/>
<span className="data_price_usd">{detailsHtml.itemPriceUS}</span>
</div>
Как мне успешно вставить getConversionRate() в formatPrice()?
Комментарии:
1. Первая функция вызывается
getConversionRate
и не принимает никаких аргументов, но затем ваша вторая функция не вызываетgetConversionRate
. Сначала вы должны передать аргументыgetConversionRate
функции и вернуть любые значения, которые вы хотите, чтобы эта функция возвращала. В противном случае вы простоimport
вызываете функцию из файла.2. @ihodonald Я не уверен, какие аргументы мне нужно передать. Мне просто нужна логика для применения внутри formatPrice. Есть идеи?
3. Вы не сказали, что
formatPrice
делает, но вы просто передаете любые переменные, которые вам нужныgetConversionRate
, получаете их внутри этой функции с параметрами иreturn
любым значением, которое вам нужно от этой функции.4. как упоминал @ihodonald, вы не упомянули, что делает функция formatPrice. Однако я бы предложил вызвать функцию getConversionRate() внутри определения formatPrice(), чтобы вернуть преобразованную цену.
5. @ihodonald Я добавил функцию formatPrice() в качестве редактирования.
Ответ №1:
Просто импортируйте getConversionRate
в тот же файл, в котором вы объявляете и используете formatPrice
.
Комментарии:
1. У меня есть. Но как мне правильно реализовать getConversionRate внутри formatPrice?