我有一个名为WastedTime.svelte
value的组件wastedTime
。还有一个函数可以将值更改为50
(在我的真实代码中,这是一个动画,但这是 Stack Overflow 的简化测试用例)。
为了允许从父级调用子函数,我使用<script context="module">
了 Svelte 文档:
<script context="module">
var wastedTime = 0;
export function changeNumber(){
console.log('changing number')
wastedTime = 50
}
</script>
<script>
// Putting 'var wastedTime = 0' here doesn't work either
</script>
<h1>Wasted time: {wastedTime}</h1>
父母从以下位置调用孩子中的函数onMount
:
<script>
import { onMount } from 'svelte';
import WastedTime, {changeNumber } from './WastedTime.svelte';
onMount(() => {
changeNumber()
});
</script>
<WastedTime />
问题是,既然wastedTime
提到了<script context="module">
,它似乎无法改变wastedTime
。导出的函数运行,但wastedTime
保持为 0。
我试过: -var wastedTime = 0
投入<script context="module">
-var wastedTime = 0
投入<script>
两者都不起作用。
如何从 Svelte 组件中导出更改组件中值的函数?