#javascript #reactjs #laravel #konvajs
Вопрос:
Я пытаюсь сгенерировать JSON для отображения кликабельного объекта Konva. Все атрибуты работают должным образом, кроме onClick.
Как передать функцию JS в JSON с помощью Laravel Respons::json()?
Вот что я попробовал.
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);
но я получил эту ошибку
Ошибка типа: selfListeners[i].обработчик.вызов не является функцией. (В «selfListeners[i].handler.call(это, evt)», «selfListeners[i].handler.call» не определен)
Комментарии:
1. Я думаю, что это ошибка на стороне клиента (реагирует). Ответ JSON кажется нормальным. Проверьте свой ответ в клиентском инструменте API, таком как postman. Если все в порядке, вам следует обновить код реакции.
Ответ №1:
Konva
не использует данные JSON для прикрепления событий. JSON используется только для атрибутов. Так что такое onClick
событие не будет привязано. Он будет просто добавлен как onClick
атрибут, а это не то, что вы хотите.
И вообще, я не уверен, что это хорошая идея-сохранять/загружать события и функции js внутри объекта JSON. JSON следует использовать только для атрибутов и состояния вашего приложения.