小编Pet*_*nas的帖子

尝试在 Vue js 中更新图表时出现最大调用堆栈错误

我有一个使用 Chart.js 3.5 库绘制的折线图。图表渲染正确,响应灵敏,并且所有动画均有效。我正在尝试从父组件触发数据更新,并触发图表更新。调用时chart.update(),会抛出异常:“未捕获(在承诺中)RangeError:超出最大调用堆栈大小”我正在使用 Vue 3 和 Chart.js 3.5

Edit1:这是一个沙箱来复制错误。

逻辑如下:

  1. 图表数据通过 props 从父级传递到子级。shouldUpdate 属性默认为 false。
  2. 当使用“createChart”方法安装子组件时绘制图表,并使用来自父组件的数据
  3. 孩子身上的观察者观察“shouldUpdate”道具的变化。
  4. 单击父组件内的按钮时,“shouldUpdate”设置为 True,从而触发子组件上的观察程序。
  5. 子项更改图表数据、更新图表,并将“shouldUpdate”属性重置回 False。

预期结果:

  1. 图表使用来自父组件的数据呈现。
  2. 图表根据从父级传递的选项进行响应/动画
  3. 从父级收到触发器时更新图表

实际结果:

  1. 图表使用来自父组件的数据呈现。
  2. 图表根据从父级传递的选项进行响应/动画
  3. 图表更新失败,并出现“超出最大调用堆栈大小”错误。

父元素:Line.vue

<template>
    <raw
        :type="type"
        :options="options"
        :data="chartData"
        :shouldUpdate="shouldUpdate"
        :resetUpdate="resetUpdate"
    />
    <button @click="updateData"></button>
</template>

<script>
import Raw from "./Raw.vue";

export default {
    name: "App",
    components: {
        Raw,
    },
    computed: {
        chartData: function () {
            return this.data;
        },
    },

    methods: {
        updateData() {
            this.shouldUpdate = true;
        },
        resetUpdate() { …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js chart.js vuejs3

10
推荐指数
2
解决办法
5199
查看次数

如何通过 Django Channels 实现视频通话?

我想创建一个应用程序,使用户能够进行视频通话。我在这里找到了一些见解,但不幸的是,答案既没有解释可以使用哪些第三方服务,也没有解释集成 WebRTC 的任何有意义的见解。

我已经设法使用 Channels 创建了一个基于 Django WebSocket 的实时聊天,并且我想到了“获取用户媒体”。但我完全被 Peer2Peer 连接淹没了。

如何通过 Django Channels 集成 WebRTC?或者我可以使用更简单的方法/第三方服务吗?

我的消费者.py:

from channels.generic.websocket import AsyncWebsocketConsumer
from channels.consumer import AsyncConsumer
import json

class ChatConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        self.room_name = self.scope['url_route']['kwargs']['room_name']
        self.room_group_name = 'chat_%s' % self.room_name
        self.user = self.scope["user"].username

        # Join room group
        await self.channel_layer.group_add(
            self.room_group_name,
            self.channel_name
        )

        await self.accept()

    async def disconnect(self, close_code):
        # Leave room group
        await self.channel_layer.group_discard(
            self.room_group_name,
            self.channel_name
        )

    # Receive message from WebSocket
    async def receive(self, text_data):
        text_data_json = …
Run Code Online (Sandbox Code Playgroud)

html javascript python django webrtc

8
推荐指数
1
解决办法
3261
查看次数

如何重构多索引数据帧

我有一个包含财务数据的数据框,如下所示:

                      Y0    Y1    Y2    Y3  
Variable1  Company1   0     2     4     5
           Company2   0     2     4     5
           Company3   0     2     4     5

Variable2  Company1   0     2     4     5
           Company2   0     2     4     5
           Company3   0     2     4     5

Run Code Online (Sandbox Code Playgroud)

有没有办法重组数据框,使其看起来像这样:

               Variable1     Variable2
Company1  Y0      0             0
          Y1      1             1
          Y2      2             2 
...
Company2  Y0      0             0
          Y1      1             1
          Y2      2             2 
Run Code Online (Sandbox Code Playgroud)

我试图重新排序级别,但它没有给出我想要的结果,因为标签位于不同的轴上。

数据

python pandas

1
推荐指数
1
解决办法
45
查看次数

标签 统计

javascript ×2

python ×2

chart.js ×1

django ×1

html ×1

pandas ×1

vue.js ×1

vuejs3 ×1

webrtc ×1