我在Dart看到了一些奇怪的行为。我的目标是仅在构建/ Web目录存在时才提供静态资产。
1-以下作品:
Cascade cc;
if(new Directory(buildPath).existsSync() )
{
cc = new Cascade().add(apiHandler).add(fHandler);
} else {
cc = new Cascade().add(apiHandler);
}
2-以下不起作用:
Cascade cc = new Cascade().add(apiHandler);
if( new Directory(buildPath).existsSync() )
{
cc.add(fHandler);
}
问题:方案1中的示例运行正常。在第二个例子中,当我添加fHandler时,为什么没有处理它的相关路由?
答案 0 :(得分:4)
Cascade类是不可变的,因此add方法返回一个新实例。您的第二个代码块假设当前实例已修改
您需要添加cc =
cc = cc.add(..)