Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 ReactJS:如何修复TypeError:数据不可编辑_Javascript_Reactjs - Fatal编程技术网

Javascript ReactJS:如何修复TypeError:数据不可编辑

Javascript ReactJS:如何修复TypeError:数据不可编辑,javascript,reactjs,Javascript,Reactjs,我有两个应用程序同时运行。第一个是从中获取API,并只查找特定数量的船只。 第二个应用程序是用户界面,用于可视化获取的数据,特别是船只的纬度和经度 我遇到的问题是,提取似乎正确地到达了终点,但抛出了一个TypeError错误:数据不可编辑,如终端上所示 似乎问题可能在于API获取。下面是我使用的代码: router.get('/hello', async function(req, res, next) { try { const { data } = await axi

我有两个应用程序同时运行。第一个是从中获取API,并只查找特定数量的船只。 第二个应用程序是用户界面,用于可视化获取的数据,特别是船只的纬度和经度

我遇到的问题是,提取似乎正确地到达了终点,但抛出了一个
TypeError错误:数据不可编辑
,如终端上所示

似乎问题可能在于API获取。下面是我使用的代码:

router.get('/hello', async function(req, res, next) {
    try {
        const { data } = await axios.get(
            'https://api.vesselfinder.com/vesselslist?userkey=KEY'
        );
        const [ metaData, ships ] = data;
        console.log(data);
        res.send(data);
    } catch (error) {
        res.send(error);
        console.log(error);
    }
});

module.exports = router;
在调查问题可能是什么时,我遇到了一个问题,它也使用
axios
来获取对API的调用。 我现在想知道我正在进行的提取是否基本上是不完整的,因此,
数据是不可编辑的
。。。 此外,我还能够使用阻止我编译的
try-catch
块处理丢失的
Promise

问题是由于缺少
axios.get('API调用')。然后缺少.setState
指令造成的吗?如果是,我该如何修复


非常感谢您为解决此问题指明了正确的方向。

请注意代码中的这一行-

 const [ metaData, ships ] = data;
在两个对象之间或两个阵列之间执行对象分解。您正在数组和对象之间进行测试,这是一个缺陷。
有关详细信息,请检查代码中的这一行-

 const [ metaData, ships ] = data;
在两个对象之间或两个阵列之间执行对象分解。您正在数组和对象之间进行测试,这是一个缺陷。
有关更多详细信息,请选中

,它只是指示端点返回的数据不是列表或类似列表的对象,因此您不能对其执行
const[metaData,ships]=data
。打开开发者工具栏的“网络”选项卡,检查端点的响应。这可能不是一个列表。谢谢你阅读这个问题。答复。我应该查找什么?您可以尝试将
数据的内容打印到控制台上吗?它显示了什么?我可能不是你想的那样。好吧,我只是
console.log(数据+“这是错误”)
并且是终端的结果。这说明了什么吗?它只是表明端点返回的数据不是列表或类似列表的对象,因此您不能对其执行
const[metaData,ships]=data
。打开开发者工具栏的“网络”选项卡,检查端点的响应。这可能不是一个列表。谢谢你阅读这个问题。答复。我应该查找什么?您可以尝试将
数据的内容打印到控制台上吗?它显示了什么?我可能不是你想的那样。好吧,我只是
console.log(数据+“这是错误”)
并且是终端的结果。这是在告诉你什么吗?