Я пытаюсь создать плагин для Figma, который до сих пор работал нормально. Он основан на примере реакции, который они предоставляют на своей странице github: https://github.com/figma/plugin-samples/tree/master/react
В этом примере я создал кнопку, которая при нажатии вызывает эту функцию:
(file: ui.tsx)
onClick = () => {
parent.postMessage({pluginMessage: {type: 'GetData'}}, '*');
};
Это parent.postMessage - функция, которую figma предоставляет для связи с другим файлом в проекте, code.ts. Этот файл получит сообщение postMessage с параметром pluginMessage, который работает как положено. Code.ts, который получает это, выглядит следующим образом:
(file: code.ts)
figma.ui.onmessage = msg => {
if (msg.type === 'GetData') {
figma.ui.postMessage({"title": figma.currentPage.selection[0].name});
}
};
Этот файл получает сообщение и получает оператор if, так как GetData был установлен. До сих пор все хорошо и хорошо. Проблема, в которую я вхожу, - это figma.ui.postMessage ({}), который должен выполнить обратный вызов функции onmessage в ui.tsx:
(file: ui.tsx)
onmessage = (selection) => {
console.log(selection);
};
Эта функция onmessage должна, согласно Figma's документацию, получить объект из postMessage в code.ts. Это, однако, никогда не происходит; это никогда не будет вызвано вообще. Я не могу получить доступ к текущему выбору в ui.tsx, поэтому мне нужны данные из code.ts. Есть ли способ передать эти данные в ui.tsx, или кто-нибудь знает, почему это не работает?