"Error: 'target' is a required option" when running imported function from `<script context="module">`
"Error: 'target' is a required option" when running imported function from `<script context="module">`
我有一个 Error.svelte 组件,它有一个 <script context="module">
包含一个可写存储和一个导出的 'addError' 函数,改变存储内容。
Error.svelte
<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
<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
<script>
import {addError} from './Error.svelte'
</script>
<button on:click={() => addError(new Error('error message'))}>
addError() from DifferentComp
</button>
当从组件中导入和 运行 这个函数工作正常,但是从 App.svelte 我收到错误消息“错误:'target' 是一个必需的选项”
请参阅 this REPL 观看现场演示
从 App.svelte 导入与从另一个组件导入时是否存在差异并且存在错误原因,或者这仅仅是一个错误?
问题在于,在您的 App.svelte
中,您正在使用导入的 Error
svelte 组件隐藏全局 Error
构造函数。在 DifferentComp
new Error()
中表示“创建错误”,而在 App.svelte
中表示“创建错误组件的实例”。将默认导入重命名为其他名称并且它有效。
我有一个 Error.svelte 组件,它有一个 <script context="module">
包含一个可写存储和一个导出的 'addError' 函数,改变存储内容。
Error.svelte
<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
<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
<script>
import {addError} from './Error.svelte'
</script>
<button on:click={() => addError(new Error('error message'))}>
addError() from DifferentComp
</button>
当从组件中导入和 运行 这个函数工作正常,但是从 App.svelte 我收到错误消息“错误:'target' 是一个必需的选项”
请参阅 this REPL 观看现场演示
从 App.svelte 导入与从另一个组件导入时是否存在差异并且存在错误原因,或者这仅仅是一个错误?
问题在于,在您的 App.svelte
中,您正在使用导入的 Error
svelte 组件隐藏全局 Error
构造函数。在 DifferentComp
new Error()
中表示“创建错误”,而在 App.svelte
中表示“创建错误组件的实例”。将默认导入重命名为其他名称并且它有效。