1

私のブロック状態では、これがあります:

Option<Either<T, Stream<T>>> optionFailureOrStream,

空 ( Option) にすることも、errorまたはを含めることもできますstream

blocはこれを次のように生成しoptionOfます:

 yield state.copyWith(optionFailureOrStream: optionOf(failureOrStream));

ウィジェットに値があるかどうかを知りたいのですが、値がある場合は、それらを折りたたんで2つの異なる画面を返したいと思います:

 if (state.optionFailureOrStream.isSome()) {
    final optionFailureOrStream = state.optionFailureOrStream;

    optionFailureOrStream.map((a) => a.fold(
        (failure) => FailureWidget(failure: failure),
        (stream) => buildSaved(stream, context)));
}

Option<T>しかし、どういうわけか私はタイプを取り除くことができません。間違ったタイプについて文句を言います。

The return type 'Option<Widget>' isn't a 'Widget', as required by the closure's context.dart(return_of_invalid_type_from_closure)

これを行うには本当に簡単な方法があると思います。ダーツ/フラッター関連のマニュアルを見つけるのに本当に苦労していdartzます.これらの概念に慣れていない場合、のソースコードは自明ではありません.

4

1 に答える 1