Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 将onmount json传递给变量_Javascript_Json_Fetch_Svelte - Fatal编程技术网

Javascript 将onmount json传递给变量

Javascript 将onmount json传递给变量,javascript,json,fetch,svelte,Javascript,Json,Fetch,Svelte,我使用Svelte onMount获取json。我在获取onMount语句外部的返回json时遇到问题 以下是我使用onMount获取JSON的方法: let testData = []; onMount(async () =>{ const resp = await fetch('http://localhost:3000/api/tableinfo.json'); testData = await resp.json();

我使用Svelte onMount获取json。我在获取onMount语句外部的返回json时遇到问题

以下是我使用onMount获取JSON的方法:

let testData = [];
    onMount(async () =>{
        const resp = await fetch('http://localhost:3000/api/tableinfo.json');
        testData = await resp.json();    
        console.log(testData);    //Returns me array of objects
    });

Console.log(testData) // return me []
如何传递对象数组并将其存储在testData中,以便使用另一个文件中的数组调用testData


谢谢。

在您的代码中,将在组件实例化时执行行
console.log(testData)
,这是在运行
onMount
之前,预期值为
[]
。一旦安装了组件并运行了
onMount
testData,testData将具有正确的值。您可以通过添加以下行轻松地尝试此操作:

$:console.log(testData)
每当testData发生更改时,都会运行此语句,您将在控制台中看到两行代码,第一行代码的初始值为空数组,第二行代码的获取结果为json

[]
[...]

在代码中,
console.log(testData)
行将在组件实例化时执行,这是在运行
onMount
之前,预期值为
[]
。一旦安装了组件并运行了
onMount
testData,testData将具有正确的值。您可以通过添加以下行轻松地尝试此操作:

$:console.log(testData)
每当testData发生更改时,都会运行此语句,您将在控制台中看到两行代码,第一行代码的初始值为空数组,第二行代码的获取结果为json

[]
[...]

你能添加更多的上下文吗?这能回答你的问题吗?你能添加更多的上下文吗?这能回答你的问题吗?好的,我设法看到了json获取结果。非常感谢。但是我希望它存储在testData中,这样当我将testData导出到另一个svelte文件时。由于这看起来像一个组件,您可以将其声明为正在导出:
export let testData=[]
但是如果这不是它自己的组件,您不需要所有svelte的东西,你可以简单地制作一个
.js
文件来代替标题,我试过了,但没有显示出来。现在它正在显示数据。谢谢斯蒂芬!好的,我设法看到了json获取结果。非常感谢。但是我希望它存储在testData中,这样当我将testData导出到另一个svelte文件时。由于这看起来像一个组件,您可以将其声明为正在导出:
export let testData=[]
但是如果这不是它自己的组件,您不需要所有svelte的东西,你可以简单地制作一个
.js
文件来代替标题,我试过了,但没有显示出来。现在它正在显示数据。谢谢斯蒂芬!