我使用的是WebStorm和Dart Angular,并且遇到某种严格或检查模式的问题。禁用Dart Angular中的严格/检查模式
每当我使用默认的WebStorm配置运行应用程序时,我会失败的断言Observer reaction functions should not change model.
,boolean expression must not be null
和type 'SubListIterable' is not a subtype of type 'List<Tag>'
。
据我所知,这是因为Dart VM在检查模式下运行,我想关闭它。如果重要的话,Dartium将推出--no-sandbox --flag-switches-begin --flag-switches-end
选项。
当我在Chrome中打开页面时,一切正常,但我当然无法调试。
编辑:第一个错误显然与检查模式无关。这里是什么,我尽量做到一个片段:
List get getCorrectTags {
if(this.allowTags)
return this.tags.map((t) => t.name).toList();
else
return this.contentTags;
}
目前的解决办法是这样的:
bool invalidateCorrectTags = false;
List correctTags = [];
List get getCorrectTags {
if (this.invalidateCorrectTags) {
this.invalidateCorrectTags = false;
if(this.allowTags)
this.correctTags = this.tags.map((t) => t.name).toList();
else
this.correctTags = this.contentTags;
}
return this.correctTags;
}
,我必须设置invalidateCorrectTags
到true
每个二传手,其中在所说的二传手变化将影响getCorrectTags的结果。有没有更好的方法来做到这一点?
经过模式是为了防止潜在的错误。如何解决问题呢?第一个错误(观察者反应...)与检查模式无关AFAIK。错误很容易解决。 –
如何纠正第一个错误?我理解最后2(类型不匹配)并且已经解决了它们,但是第一个需要在模型获取者中兑现和取消这些钱币。 –
您可以请发布代码。我不知道如何解决我看不到的;-) –