Laravel + React:在 JSON 响应中传递函数

Laravel + React: Pass Function in JSON response

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

如何在 JSON 中使用 Laravel Respons::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 is not a function. (In 'selfListeners[i].handler.call(this, evt)', 'selfListeners[i].handler.call' is undefined)

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

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