私のブロック状態では、これがあります:
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
ます.これらの概念に慣れていない場合、のソースコードは自明ではありません.