0

Dart で奇妙な動作が見られます。私の目標は、ビルド/Web Dir が存在する場合にのみ静的アセットを提供することです。

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 の例は問題なく動作します。2 番目の例では、fHandler を追加すると、関連するルートがまったく処理されないのはなぜですか?

4

1 に答える 1

4

Cascade クラスは不変であるため、add メソッドは新しいインスタンスを返します。2 番目のコード ブロックは、現在のインスタンスが変更されていることを前提としています

cc = を追加する必要があります

cc = cc.add(..)
于 2015-09-28T23:03:47.653 に答える