【问题标题】:Import function from js file into svelte but variable is not defined将函数从 js 文件导入 svelte 但未定义变量
【发布时间】:2022-11-25 05:55:59
【问题描述】:

我想将一个函数从 js 文件导入到 App.svelte 中。该函数包含一个未在 js 文件中定义的变量 c。 C 改变了值,但我不希望我的函数对 c 的变化有反应,只对 b 的变化有反应。当 b 改变时,我的函数应该使用 c 的任何值。当我在 app.svelte 中定义函数时,它可以工作,但不能与导入一起使用。

我怎样才能做到这一点?

这是一个回复:

App.Svelte

<script>
    
    import {sum} from './function.js'
    
    let a = 1;
    let b = 2;
    let c = 3;
    let res;
    $: res = sum(a, b);
    
</script>

<button on:click={() => c=c+1}>
    C
</button>
<button on:click={() => b=b+1}>
    B
</button>
{res}
{c}
export function sum(a, b) {
    return a + b + c
}

【问题讨论】:

    标签: import svelte


    【解决方案1】:

    你可以curry它:

    export const sum = c => (a, b) => a + b + c;
    
    import { sum } from './function.js';
    
    // ...
    const c = 3;
    const sumWithC = sum(c);
    $: res = sumWithC(a, b);
    

    (不过,提取这样一个基本函数可能没有多大意义。)

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2019-09-19
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多