【问题标题】:Laravel + React: Pass Function in JSON responseLaravel + React:在 JSON 响应中传递函数
【发布时间】:2021-09-15 14:26:18
【问题描述】:

我正在尝试为显示可点击的 Konva 对象生成 JSON。除 onClick 外,所有属性都按预期工作。

如何使用 Laravel Respons::json() 以 JSON 格式传递 JS 函数?

这是我尝试过的。

return Response::json([
            'status' => 'completed',
            'message' => 'Question ID:'.$id.' Retreived',
            'data' => [
                
                    "attrs" => [
                        "width" => 1200,
                        "height"=> 200
                    ],
                    "className" => "Stage",
                    "children" => [
                        [
                            "attrs"=>[],
                            "className"=>"Layer",
                            "children"=>[
                                [
                                    "attrs"=>[
                                        "x"=>125,
                                        "y"=>100,
                                        "text"=>"Test Text",
                                        "onClick"=> "{() => console.log(test)}",
                                        "fontSize"=>25,
                                    ],
                                    "className"=>"Text"
                                ]
                            ]
                        ],
                    ]
                
            ]
        ], 200);

但我收到了这个错误

TypeError: selfListeners[i].handler.call 不是函数。 (在'selfListeners[i].handler.call(this, evt)'中,'selfListeners[i].handler.call'未定义)

【问题讨论】:

  • 我认为这是客户端(React)错误。 JSON响应似乎没问题。在 API 客户端工具(例如 postman)中检查您的响应。如果一切正常,你应该更新你的 React 代码。

标签: javascript reactjs laravel konvajs


【解决方案1】:

Konva 未使用 JSON 数据附加事件。 JSON 仅用于属性。所以不会附加这样的onClick 事件。它将被添加为onClick 属性,这不是您想要的。

一般来说,我不确定在 JSON 对象中保存/加载事件和 js 函数是否是个好主意。 JSON 应该仅用于应用程序的属性和状态。

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    相关资源
    最近更新 更多