だから..まず、私はFLUXアーキテクチャを使用しています。別のシーンをロードするこの基本シーンがあります。ローダーはローダー保管庫にあります。ボタンをクリックしたとしましょう。メッセージを取得するシーン ストアにアクションを送信し、それをローダー ストレージに送信して新しいシーンをロードします。しかし、これを行うたびに、ストレージを使用せずにローダーをシーンに埋め込むだけでテストしたため、通常のデータまたは正しいデータを使用しているにもかかわらず、「TypeError: Type error」というエラーが発生します。
BaseScene.qml
Rectangle {
id: rect_baseLoader
width: parent.width
height: parent.height
anchors.top: rect_header.bottom
anchors.topMargin: 0
color: "red"
BaseLoaderStorage {
id: storage_scene
anchors.fill: parent
}
StoreAdapter {
storage_baseloader: storage_baseloader
}
}
HomeScene.qml
onClicked: {
AppActions.navigateTo("SalesScene.qml");
}
BaseLoaderStorage.qml
AppListener {
property BaseLoaderStorage storage
Filter {
type: ActionTypes.navigateTo
onDispatched: {
console.log("MESSAGE = " + message.source)
storage.source = SCENE_LOC + qsTr(message.source)
}
}
}
BaseLoaderStore.qml
Item {
property alias source: baseLoader.source
id: storage_basesceneloader
Loader {
id: baseLoader
focus: true
anchors.fill: parent
anchors.centerIn: parent
property bool valid: item !== null
source: SCENE_LOC + "HomeScene.qml"
}
Connections {
ignoreUnknownSignals: true
target: baseLoader.valid ? baseLoader.item : null
}
}
問題は、ローダーのソースに正しいデータを渡しているときに、「TypeError: Type error」というエラーが表示される理由です。前もって感謝します!:)