【问题标题】:Use a function of component in svelte在 svelte 中使用组件的功能
【发布时间】:2020-12-10 00:12:28
【问题描述】:

我在 svelte 上有我的 CodeMirror 组件,我需要使用一些函数(在组件内部声明),我使用 codemirror 来更改值。例如:

export function update(new_value) {

value = new_value;

if (editor) {
  const { left, top } = editor.getScrollInfo();
  editor.setValue((value = new_value));
  editor.scrollTo(left, top);
}


 }

如何在声明 CodeMirror 的地方导入和使用它?我尝试使用

 import CodeMirror, {update} from '../../../../components/CodeMirror.svelte';

但不工作

【问题讨论】:

    标签: javascript svelte sapper


    【解决方案1】:

    鉴于您正在导出函数,您应该能够使用bind:this 在组件实例上调用该函数。您将创建一个可以在 bind:this 语句中引用的变量,然后您可以针对该组件调用导出的函数 update

    let codeMirrorComponent;
    
    function someHandler() {
      // may want to check `if (codeMirrorComponent && codeMirrorComponent.update)` to ensure function is available to call
      codeMirrorComponent.update('someValue');
    }
    
    <CodeMirror bind:this={codeMirrorComponent} />
    

    REPL 正在行动。

    希望对您有所帮助!

    【讨论】:

    • 我了解所有内容以及我犯错误的地方,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 2020-09-09
    • 2021-05-10
    • 2020-07-13
    • 2023-01-21
    • 2023-01-02
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多