"Cannot read property 'children' ", в чем проблема?


#1

Привет!
Я никогда не использовал node.js, но меня очень заинтересовал дынный проект (конвертирует figma в Html ) . Я сделал все по инструкции. открыл проект через «JetBrains WebStorm». node 10.15.3 LTS

C:\nodejs\figma-api-demo-master\figma-to-react>node main.js NenS4ISbne6VYlkmnyX3MdYP

TypeError: Cannot read property 'children' of undefined at main (C:\nodejs\figma-api-demo-master\figma-to-react\main.js:94:22) at processTicksAndRejections (internal/process/next_tick.js:81:5)

как исправить ошибку?


#2

Ошибка в том что у переменной в которой значение null попробовали взять свойство .children.

Ты точно следуешь всем ограничениям, опиcанным в репозитории? Плюс там еще и дисклеймер что

This demonstrates using the Figma REST API to convert a Figma document to React Components. Disclaimer: this code is likely incomplete, and may have bugs. It is not intended to be used in production. This is simply a proof of concept to show what possibilities exist.


#3

Спасибо, что обратили внимание на мой вопрос.
Да, делаю все по инструкции.

  1. Почему строка 94 выдает null? За это отвечает функция на 97 строке(когда нету “#” и объект скрытый то ставиться null), или там еще есть какие то условия?
    Код main.js
    Файл дизайна (https://www.figma.com/file/NenS4ISHne6VYBBmnyX3MdYP/Untitled?node-id=0%3A1), в котором стоят в главных фреймах “#”

  2. В инструкции указанно, что нужно прописать в командную строку, дополнительно к запуску(…/node main.js), ключ дизайн проекта и токен. Может быть можно вставить ключ дизайн проекта в код main.js и запустить по другому, потому что там стоит функция на количество прописаных слов в командную строку


#4

Код начинается с ajax запроса к api. В ответе ожидается что будет объект со свойством document, но, судя по ошибке, его нет. Залоггируй в консоль что возвращает запрос:

let data = await resp.json();

const util = require('util')
console.log(util.inspect(data))

Кажется ссылка не на тот код о котором говоришь.

Ключ проекта заходит последним аргументом. Я проверил со своим ключом и своим документом, запускается без проблем для их файла примера VGULlnz44R0Ooe4FZKDxlhh4

node main.js VGULlnz44R0Ooe4FZKDxlhh4 9408-9707a75f-6f43-4d73-a42a-79d2613aa241

и генерирует в итоге какой-то код.

Попробуй запустить сборку с их файлом и своим токеном. Если сработает, а потом не сработает с твоим файлом, значит дело в файле. Там уже удаляй по половине компонент чтобы понять какой именно компонент не срабатывает корректно.


#5

Спасибо большое, ваш второй совет сработал .
Проблема была в том что я вводил токен код неправильно с “<>” .

Вопрос :

In the example document you can see that we have one top level frame named #Clock . The component resulting from this will be exported in src/figmaComponents.js as MasterClock , a React.PureComponent .

но когда названия фрейма другое ( например #car), то в файле index.js не меняется имя файла, а остается прежним.
например : frame #one = masterone , frame #two = должно быть mastertwo, а остается masterone.
Как сделать так,что бы названия не надо было менять каждый раз в ручную, а оно менялось автоматически?


#6

Не уверен что сработает. Попробуй удалить все файлы, а потом запустить генерацию заново.

И давай сразу на “ты” (если удобно), тут все свои.