BB10 캐스케이드에서 불만을 겪고 있습니다.이벤트를 호출 한 QML 객체를 제거 할 때 크래시가 발생합니다.
동적 인 항목이있는 "대시 보드"페이지가 있습니다. 항목 자체에는 contextAction이 있습니다. 대시 보드에서 항목을 제거하는 작업 중 하나입니다. 그러나 항목을 제거하면 앱이 강제 종료됩니다.
코드의 추출물을 아래의 경우 : ticket.qml에서
...
contextActions: [
ActionSet {
ActionItem {
id: actionUnTrack
title: "Remove this Ticket"
onTriggered: {
untrackTicket(bookingRef);
}
}
}
]
...
는이 메소드를 호출 (ticketDefinition 사용)
Dashboard.qml
...
Container {
id: ticketContainer
bottomPadding: 20
horizontalAlignment: HorizontalAlignment.Fill
}
...
function refreshTickets() {
ticketContainer.removeAll();
for (var i=0; i<tickets.length; i++) {
var obj = ticketDefinition.createObject();
obj.bookingRef = tickets[i].bookingReference;
obj.bookingDate = ticket[i].bookingDate;
ticketContainer.add(obj);
}
}
Ticket.qml untrackTicket 유틸리티 클래스에서 Dashboard.qml의 refreshTickets()를 호출합니다. 새로 고침이 실행되는 즉시 앱이 종료됩니다.
크래시에 대한 로그가 없습니다.
이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
감사합니다. 다른 곳에서 removeAll을 사용했는데 제대로 작동합니다. 컨트롤 중 하나가 트리거 작업을 담당 할 때 문제가되는 것처럼 보입니다. 나는 그 대신에 객체의 메모리를 지우지 않는 ticketContainer.remove()를 사용하여 문제를 해결할 수 있었다. 이상적은 아니지만이 경우에는 앱에서 사용자 당 2 개 이상의 티켓을 허용하지 않으므로 페이지가 닫히면 티켓이 메모리에서 지워집니다. – hyarion