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 应仅用于应用程序的属性和状态。
我正在尝试生成 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 应仅用于应用程序的属性和状态。