javascript - Dojo: ¿No se puede leer la propiedad ''h'' de undefined en AccordionContainer.js?
(2)
Una solución a este problema es primero agregar los niños al AccordianContainer y luego agregar el AccordianContainer al padre.
Me aparece un error como este cuando creé dos contenedores de acordeón dinámicamente debajo de un contenedor de acordeón.
El error no ocurrirá cuando haya creado cualquiera de estos contenedores de acordeón individuales en lugar de crear ambos juntos.
Error:
No se puede leer la propiedad ''h'' de undefined en AccordionContainer.js
He solucionado temporalmente el problema agregando estas líneas al archivo del kit de herramientas, dojo-toolkit / dijit / layout / AccordionContainer.js
Line 91: + if(this._contentBox)
Line 92: this._verticalSpace=_34.h-_35-_2f.h-_30.h-_32.h-_33.h-_2d._buttonWidget.getTitleHeight();
Line 93: + if(this._contentBox)
Line 94: this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_2f.w-_30.w-_32.w- _33.w};
La estructura del código de creación del widget de acordeón es
define("test/project", [
"dojo/_base/declare",
"dijit/_Widget",
"dijit/layout/AccordionContainer"],
function(declare, _Widget, AccordionContainer) {
return declare([_Widget],{
postCreate: function() {
var new_acc = new AccordionContainer({
id: "new_acc",
title: "Approval ("+this.count+")"
});
this.parentId.addChild(new_acc);
}
});
});
Alguna idea para resolver este problema?
Gracias por adelantado...
Estoy enfrentando el mismo problema pero lo descubrí. Cuando intentas crear otro niño en acordeón después de aContainer.startup (); método, generará el mismo mensaje de error. El método de inicio inicia el acordeón y aplicará alto y ancho a ese acordeón dinámicamente, si vuelve a crear un elemento secundario después de crear el acordeón, emitirá un error "No se puede leer la propiedad ''h'' de undefined en AccordionContainer.js"
aContainer = new AccordionContainer({ style: "height: 300px" },acdic);
aContainer.addChild(new ContentPane({
title: "This is a content pane",
content: "Hi!"
}));
aContainer.addChild(new ContentPane({
title: "This is as well",
content: "Hi how are you?",
id: "pane1"
}));
aContainer.startup();
aContainer.addChild(new ContentPane({
title: "This too",
content: "Hello im fine.. thnx"
}));