Estoy tratando de representar una matriz de objetos HTML en una declaración de devolución de reacción.
var domObj = LCARS.create(nemesisUI).dom; return domObj.map(({ id, className }) => { <div id={id} className={className}></div>; });El método LCARS.create() devuelve una matriz de los objetos definidos previamente que se parece a esto: pastebin (el elemento .dom está en la parte inferior)
Los elementos .dom se crean en un método de creación específico del elemento como
create: function (oDef) { var element; if (oDef.href !== undefined) { element = $('<a id="' + oDef.data.id + '" class="wrapper"></a>'); } else { element = $('<div id="' + oDef.data.id + '" class="wrapper"></div>'); } return element; }Esto debe hacerse porque más tarde, las clases se agregarán o eliminarán:
class: function (object, oValue) { for (var prop in oValue) { var bValue = oValue[prop]; if (bValue === false) { object.dom.removeClass(prop); delete object.data.class[prop]; } else if (bValue === true) { if (!object.data.class) { object.data.class = {}; } object.dom.addClass(prop); object.data.class[prop] = true; } } return true; }El código completo para "LCARS SDK" se puede encontrar aquí: GitHub
Entonces, al menos domObj.dom es una matriz de jQuery.fn.init(). Cuando trato de representarlo con el código anterior, .dom es "0" y id y className no están definidos.
También intenté devolver domObj[0] o domObj directamente, pero luego aparece el error:
Error: los objetos no son válidos como hijos de React (encontrado: [objeto HTMLDivElement]). Si tenía la intención de representar una colección de niños, use una matriz en su lugar.
Realmente no sé cómo puedo representar estos Objetos con respecto a las cosas jQuery.Init. Espero que alguien pueda ayudar.