Я новичок в svelte и мне нужно немного помочь. У меня есть функция преобразования веса, которая рассчитывает перевод между фунтами и килограммами. Есть два входа и ввод значения в фунтах автоматически покажет килограммы и наоборот.
let k = '';
let l = '' ;
function setBothFromK(value) {
k = +value;
l = +( k * 2.2046226218).toFixed(1);
}
function setBothFromL(value) {
l = +value;
k = +( l / 2.2046226218).toFixed(1);
}
, а входные данные задаются следующим образом:
<input id="inputKilograms" name="inputKilograms" type="number" placeholder="kgs"
bind:value={k} on:input="{e => setBothFromK(e.target.value)}" min="0">
<input id="inputPounds" name="inputPoundsE" type="number" placeholder="lbs"
bind:value={l} on:input="{e => setBothFromL(e.target.value)}" min="0">
Затем я использую значение k для расчета дозировки лекарственного средства в мг и мл с значениями, предоставленными массивом лекарств. Когда вес изменяется, дозировки и объемы меняются.
Рассчитанные дозировки и объемы устанавливаются следующим образом:
{#each antibiotics as antibiotic, i}
<div>{((k * antibiotic.dosevalue) / antibiotic.concs).toFixed(2)}</div>
<div> {(k * antibiotic.dosevalue).toFixed(2)} </div>
{/each}
РЕДАКТИРОВАННЫЕ и обновленные REPL
Хорошо работает. Я пытаюсь настроить компонент svelte, чтобы можно было экспортировать функции html и 2 для использования на нескольких страницах.
Weightconvert.svelte is:
<script>
let k = '';
let l = '';
export function setBothFromK(value) {
k = +value;
l = +( k * 2.2046226218).toFixed(1);
}
export function setBothFromL(value) {
l = +value;
k = +( l / 2.2046226218).toFixed(1);
}
</script>
<input id="inputPounds" name="inputPounds" type="number" placeholder="lbs"
bind:value={l} on:input="{e => setBothFromL(e.target.value)}" min="0">
<input id="inputPounds" name="inputKilograms" type="number" placeholder="kgs"
bind:value={k} on:input="{e => setBothFromK(e.target.value)}" min="0"`
App.svelte is:
<script>
let k = '';
let l = '' ;
import Weightconvert, {setBothFromK , setBothFromL } from './Test.svelte';
let dosevalue = 20;
let concs = 3;
</script>
<Weightconvert ></Weightconvert>
<div bind:this={k}> Dose: {(k * dosevalue).toFixed(2)}</div>
<div bind:this={k}> Volume: {((k * dosevalue) / concs).toFixed(2)} </div>
Функция преобразования веса работает на каждой странице, но вычисления дозировки и объема не выполняются , Будучи новичком, я не уверен, как заставить это работать. Спасибо за любую помощь.
Вот REPL с базовой функциональностью c, но без импорта компонента