FluentUI icon indicating copy to clipboard operation
FluentUI copied to clipboard

FluNavigationView没有内容

Open nimeng1299 opened this issue 2 years ago • 5 comments

我差不多是照抄example的FluNavigationView,但是运行有搜索框、返回按钮等,就是没有像home,settings这些内容 运行有警告

qrc:/qt/qml/demo/mainqml.qml:131: TypeError: Property 'getSearchData' of object [object Object] is not a function
qrc:/FluentUI/Controls/FluNavigationView.qml:653: TypeError: Cannot read property 'pageMode' of null

代码部分

FluNavigationView{
                  property int clickCount: 0
                  id:nav_view
                  width: parent.width
                  height: parent.height
                  z:999
                  items: ItemsOriginal
                  topPadding:FluTools.isMacos() ? 20 : 5
                  displayMode:FluNavigationView.Auto
                  title:"demo"
                  Behavior on rotation {
                      NumberAnimation{
                          duration: 167
                      }
                  }
                  transformOrigin: Item.Center
                  onLoginClicked:{
                      clickCount += 1
                      if(clickCount === 1){
                          loader.reload()
                          flipable.flipped = true
                          clickCount = 0
                      }
                  }
                  autoSuggestBox:FluAutoSuggestBox{
                      width: 280
                      anchors.centerIn: parent
                      iconSource: FluentIcons.Search
                      items: ItemsOriginal.getSearchData()
                      placeholderText: "搜索"
                      onItemClicked:
                          (data)=>{
                              ItemsOriginal.startPageByItem(data)
                          }
                  }
                  Component.onCompleted: {
                      ItemsOriginal.navigationView = nav_view
                      setCurrentIndex(0)
                  }
              }

其中ItemsOriginal我是直接复制了example的过来,把里面ontap的导航修改了一下

nimeng1299 avatar Jul 05 '23 11:07 nimeng1299

缺少了一个ItemsOriginal.getSearchData方法。。

zhuzichu520 avatar Jul 05 '23 11:07 zhuzichu520

缺少了一个ItemsOriginal.getSearchData方法。。

好像有啊。。

 function getSearchData(){
        var arr = []
        var items = navigationView.getItems();
        for(var i=0;i<items.length;i++){
            var item = items[i]
            if(item instanceof FluPaneItem){
                arr.push({title:item.title,key:item.key})
            }
        }
        return 

nimeng1299 avatar Jul 05 '23 11:07 nimeng1299

ItemsOriginal 是单例么?example中是单例,可以看下同级目录下有个qmldir文件

zhuzichu520 avatar Jul 05 '23 13:07 zhuzichu520

ItemsOriginal 是单例么?example中是单例,可以看下同级目录下有个qmldir文件

qmldir是编译时自动生成的,它里面的ItemsOriginal 没有singleton前缀,手动添加就好了,但是如果修改了其他地方重新编译的话他又会重新生成一遍,每次都要手动添加singleton,有没有一种添加一次就可以的方法?

nimeng1299 avatar Jul 05 '23 17:07 nimeng1299

请问一下你解决了吗,我也有这个问题

losemao avatar May 28 '24 06:05 losemao