我正在使用WebStorm和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;
}
我必须在每个setter中将invalidateCorrectTags
设置为true
,其中所述setter中的更改将影响getCorrectTags的结果。有没有更好的方法呢?
答案 0 :(得分:2)
最近从WebStorm
删除了禁用已检查模式的选项https://youtrack.jetbrains.com/issue/WEB-24466
提到的解决方法是添加
<entry key="DART_FLAGS" value="--checked" />
到[configuration]/options/web-browsers.xml