首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Error:'target‘is a required option“when running imported function from `<script context=”context=“>`

"Error:'target‘is a required option“when running imported function from `<script context=”context=“>`
EN

Stack Overflow用户
提问于 2021-11-01 10:11:46
回答 1查看 39关注 0票数 0

我有一个Error.svelte组件,它有一个包含可写存储的<script context="module">和一个导出的“addError”函数,用于更改存储内容。

Error.svelte

代码语言:javascript
复制
<script context="module">

    import {get, writable} from "svelte/store";

    let errorStore = writable([])

    export function addError(error) {
        let errors = get(errorStore)
        errors.push(error)
        errorStore.set(errors)
        throw error
    }
</script>

App.svelte

代码语言:javascript
复制
<script>
    import Error, {addError} from './Error.svelte'
    import DifferentComp from './DifferentComp.svelte'  
</script>

<Error />

<button on:click={() => addError(new Error('error message'))}>
    addError() from App
</button>

<DifferentComp />

DifferentComp .svelte

代码语言:javascript
复制
<script>
import {addError} from './Error.svelte'

</script>

<button on:click={() => addError(new Error('error message'))}>
    addError() from DifferentComp
</button>

当从组件导入并运行此函数时,运行正常,但从App.svelte获得错误消息" error:'target‘is a required option“

有关现场演示,请参阅this REPL

从App.svelte导入和从另一个组件导入有什么不同吗?错误是有原因的,还是这只是一个bug?

EN

Stack Overflow用户

回答已采纳

发布于 2021-11-01 12:03:55

问题是,在您的App.svelte中,您正在使用导入的Error svelte组件来隐藏全局Error构造函数。在DifferentComp中,new Error()意味着“创建错误”,而在App.svelte中,它意味着“创建错误组件的实例”。将默认导入重命名为其他名称,即可正常工作。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69795416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档