单例对象的QML运行时错误:递归实例化?

时间:2017-04-04 23:37:33

标签: singleton qml qtquick2

我刚刚创建了一个新的QML单例类型的运行时错误:

qrc:///Components/RunStatus.qml:-1 RunStatus is instantiated recursively

我有另一个QML单例对象可以正常工作,我比较了两者,并没有明显的差异。

这里是RunStatus.qml的来源:

pragma Singleton
import QtQuick 2.6
import Components 1.0

Item {
    property bool isRunning: false
    property bool isStopped: !isRunning
}

我的qmldir文件的来源是:

#  singleton QML files
singleton RunStatus  1.0  RunStatus.qml

我删除了对象RunStatus的所有引用,但仍然出现错误。但是,当我从qmldir文件中删除singleton关键字时,运行时错误就会消失。

1 个答案:

答案 0 :(得分:0)

从RunStatus.qml中删除以下import Components 1.0 语句:

var asyncEachSeries = require('async/eachSeries');
.        
.        
.
if (recommendationsArr.length > 0) {
  asyncEachSeries(recommendationsArr, function (item, callback){
    getContent(item).then(function(response){
      try { 
          //do stuff
          return true;
        } catch (err) {
          //do stuff
        }
      return response;
    });
  });
}

使用声明singleton qml对象的qmldir导入文件夹会导致递归实例化。