Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 苗条存储功能更新_Javascript_Svelte_Svelte 3_Svelte Store - Fatal编程技术网

Javascript 苗条存储功能更新

Javascript 苗条存储功能更新,javascript,svelte,svelte-3,svelte-store,Javascript,Svelte,Svelte 3,Svelte Store,Svlete存储文档显示字符串或整数正在更新,但我在存储中未找到任何动态函数 我不明白如何将getData函数设置为可写函数,以便将更改通知给html 在下面的示例中,我希望在调用updateKey函数之后显示“b” 您将在REPL中找到一个最小的代码: 这里的代码与REPL关闭时的代码相同: App.svelte: <script> import { getData } from './store.js'; import { updateKey } from './store.js

Svlete存储文档显示字符串或整数正在更新,但我在存储中未找到任何动态函数

我不明白如何将getData函数设置为可写函数,以便将更改通知给html

在下面的示例中,我希望在调用updateKey函数之后显示“b”

您将在REPL中找到一个最小的代码:

这里的代码与REPL关闭时的代码相同:

App.svelte:

<script>
import { getData } from './store.js';
import { updateKey } from './store.js';
setTimeout(updateKey, 1000);
</script>

<h1>{getData()}!</h1>
目标是在商店中使用动态功能


谢谢你的阅读。

好吧,我想你仍然对苗条的工作方式有点困惑。。。不确定如何最好地回答您的问题,所以这里有一些代码,说明您试图实现的目标,以及一些注释。我希望它能帮助你更好地了解商店的情况

App.svelte

<script>
    
    import { getData } from './store.js';
    import { updateKey } from './store.js';
    
    setTimeout(function() {
        updateKey()
    }, 1000);
    

</script>

<h1>{$getData()}</h1>
从“svelte”导入{onMount} 从“/store.js”导入{key,data,updateKey} onMount=>{ //让一个未经检查的计时器运行是不安全的——问题可能会出现 //如果组件在超时之前被销毁,则发生, //这就是为什么我们要使用'onMount'生命周期函数及其 //这里有清理功能 const timeout=setTimeoutupdateKey,1000; //销毁组件时,将调用此清理函数 返回=>{ clearTimeouttimeout } } //每次更改“key”存储时,它都会使用 //反应性的表情是苗条的 $:console.log$键 db[$key]
嗯,我想你仍然对苗条的工作方式有点困惑。。。不确定如何最好地回答您的问题,所以这里有一些代码,说明您试图实现的目标,以及一些注释。我希望它能帮助你更好地了解商店的情况

App.svelte

<script>
    
    import { getData } from './store.js';
    import { updateKey } from './store.js';
    
    setTimeout(function() {
        updateKey()
    }, 1000);
    

</script>

<h1>{$getData()}</h1>
从“svelte”导入{onMount} 从“/store.js”导入{key,data,updateKey} onMount=>{ //让一个未经检查的计时器运行是不安全的——问题可能会出现 //如果组件在超时之前被销毁,则发生, //这就是为什么我们要使用'onMount'生命周期函数及其 //这里有清理功能 const timeout=setTimeoutupdateKey,1000; //销毁组件时,将调用此清理函数 返回=>{ clearTimeouttimeout } } //每次更改“key”存储时,它都会使用 //反应性的表情是苗条的 $:console.log$键 db[$key]
如果我正确理解了您的问题,您希望能够更改getData执行的函数逻辑,并且希望在每个函数上更改要更新的html

对于这个用例,您需要创建自己的自定义存储

在store.js中如下所示

在App.svelte中

<script>
    
    import { getData } from './store.js';
    import { updateKey } from './store.js';
    
    setTimeout(function() {
        updateKey()
    }, 1000);
    

</script>

<h1>{$getData()}</h1>
我们将$添加到getData,因为它是一个保存函数引用的存储,并且可以执行getData存储引用的任何函数。由于它是getData的每个值更改函数更改的存储,因此html将被更新


下面是实现的一个示例

如果我正确理解了您的问题,您希望能够更改getData执行的函数逻辑,并且希望在每个函数上更改要更新的html

对于这个用例,您需要创建自己的自定义存储

在store.js中如下所示

在App.svelte中

<script>
    
    import { getData } from './store.js';
    import { updateKey } from './store.js';
    
    setTimeout(function() {
        updateKey()
    }, 1000);
    

</script>

<h1>{$getData()}</h1>
我们将$添加到getData,因为它是一个保存函数引用的存储,并且可以执行getData存储引用的任何函数。由于它是getData的每个值更改函数更改的存储,因此html将被更新


下面是实现的一个示例

感谢您提供这个很酷的示例。我是新来的苗条和一些像这样的精确实现是非常有用的。谢谢你这个很酷的样本。我是新来的苗条和一些像这样的精确实现是非常有帮助的。谢谢你的回答。这正是我想说的话。我将花一些时间来理解派生行为。我更新了REPL:核心问题是在store函数中传递参数。这是可能的吗?不,这不是直接可能的-函数调用从来都不是被动的。当lang值更改时,可以在反应式表达式中调用函数。但在我看来,这个函数调用实际上是在试图强制采用某种程序化的风格,在这种风格中,对于苗条的人来说,功能性更强的方法会自然得多,并且最终可能不太容易出现bug。为此,函数调用将变成更改键可写存储的值,结果将来自派生存储。更新了REPL以说明这两种方法:再次感谢您提供第二个示例。我想我可能会尝试把这家商店当作一件事,它不像你说的那样。
也许我忽略了商店/反应行为的要点,我得努力解决这个问题。谢谢你的回答。这正是我想说的话。我将花一些时间来理解派生行为。我更新了REPL:核心问题是在store函数中传递参数。这是可能的吗?不,这不是直接可能的-函数调用从来都不是被动的。当lang值更改时,可以在反应式表达式中调用函数。但在我看来,这个函数调用实际上是在试图强制采用某种程序化的风格,在这种风格中,对于苗条的人来说,功能性更强的方法会自然得多,并且最终可能不太容易出现bug。为此,函数调用将变成更改键可写存储的值,结果将来自派生存储。更新了REPL以说明这两种方法:再次感谢您提供第二个示例。我想我可能会尝试把这家商店当作一件事,它不像你说的那样。也许我忽略了商店/反应行为的要点,我得努力解决这个问题。谢谢