我有一個 Error.svelte 組件,它<script context="module">
包含一個可寫的存儲和一個導出的“addError”函數,改變存儲內容。
<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>
<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 />
<script>
import {addError} from './Error.svelte'
</script>
<button on:click={() => addError(new Error('error message'))}>
addError() from DifferentComp
</button>
從組件導入和運行此函數時工作正常,但從 App.svelte 我收到錯誤消息“錯誤:'目標'是必需的選項”
請參閱此 REPL以獲取實時演示
從 App.svelte 導入與從另一個組件導入時是否有區別,並且存在錯誤的原因,或者這只是一個錯誤?
問題在於,在您的 中App.svelte
,您正在Error
使用導入的Error
svelte 組件遮蔽全局構造函數。Inside 的DifferentComp
new Error()
意思是“創建一個錯誤”,而 in 的App.svelte
意思是“創建一個 Error 組件的實例”。將默認導入重命名為其他名稱,它可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句