我有一个Component
类型的属性。
import QtQuick 2.6
Item {
id: root
property Component sourceComponent
/* ........ */
Loader {
anchors.fill: parent
id: myLoader
}
SequentialAnimation {
id: hideLoader
NumberAnimation {
target: root
property: "y"
duration: 1000; from: 0; to: -root.height
}
onStopped: root.sourceComponent = undefined; //<-- Error: Cannot assign [undefined] to QQmlComponent*
}
}
每当我想将其设置为undefined
时,都会引发错误。如何将其设置为undefined
?
的更新
正如您在示例代码中看到的,我希望在完成动画后分配sourceComponent
loader
。所以我需要属性才能正常而不是alias
。
答案 0 :(得分:0)
Loader文档说:
如果
source
或sourceComponent
发生更改,则会销毁以前实例化的所有项目。将source
设置为空字符串或将sourceComponent
设置为undefined
会破坏当前加载的对象,释放资源并将Loader留空。
因此,您只需将其source
属性设置为空字符串即可。
在您的情况下,您需要一个名为sourceComponent
的别名属性,而不是普通属性。
property alias sourceComponent: myLoader.sourceComponent
答案 1 :(得分:0)
您可以使用this issue来实现此目标。
property Component sourceComponent
不要将private readonly ApplicationDbContext _context;
public OrderController(ApplicationDbContext context)
{
_context = context;
}
定义为sourceComponent
,而是将其定义为Component
。示例:
var
将此sourceComponent分配给Loader sourceComponent。
property var sourceComponent = Qt.createComponent("YourCustomImplementation.qml");