【发布时间】:2020-02-05 19:43:46
【问题描述】:
我有一个名为WastedTime.svelte 的组件,其值为wastedTime。还有一个函数可以将值更改为50(在我的真实代码中,这是一个动画,但这是 Stack Overflow 的简化测试用例)。
为了允许从父级调用子函数,我在 Svelte 文档中使用了 <script context="module">:
<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 组件中导出更改组件中的值的函数?
【问题讨论】:
标签: javascript svelte svelte-component