es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Transformador de ScanStream en patrón de bloque.

Me he encontrado con este problema:

Realizando reinicio en caliente…
Sincronizando archivos al dispositivo Android SDK construido para x86…
lib/blocs/moviedetailbloc.dart:28:22: Error: Una expresión de comparación no puede ser un operando de otra expresión de comparación.
Intente agregar paréntesis alrededor de una de las comparaciones.
Future{},
^
lib/blocs/moviedetailbloc.dart:28:13: Error: El operador ‘<‘ no está definido para la clase ‘Type’.
– ‘Type’ es de ‘dart:core’.
Intente corregir el operador a un operador existente o definir un operador ‘<‘.
Future{},
^
Aplicación reiniciada en 850ms.

Aquí está mi parte de codigo =>

class MovieDetailBloc {
  final _repository = Repository();
  final _movieId = PublishSubject<int>();
  final _trailers = BehaviorSubject<Future<Trailers>>();

Función(int) obtenerTrailersPorId => _movieId.sink.add;

Stream<Future<Trailers>> obtenerTrailersDePeliculas => _trailers.stream;

MovieDetailBloc() {
    <em>movieId.stream.transform(</em>itemTransformer()).pipe(_trailers);
  }

_itemTransformer() {
    return ScanStreamTransformer<int, Future<Trailers>>((trailer, int id, index) {
        debugPrint(index.toString());
        trailer = _repository.fetchTrailers(id);
        debugPrint(trailer.toString());
        return trailer;
      },
      Future<Trailers>{},     <---linea de error--
    );
  }
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema en la línea 28 del archivo movie_detail_bloc.dart en el directorio lib/blocs/ de tu proyecto. El error ocurre porque hay una expresión de comparación incorrecta en la función _itemTransformer.

    El problema específico es que Future<trailers>{} se está utilizando como operando en una expresión de comparación. Esto no está permitido porque Future<trailers>{} no es un valor que se pueda comparar con otro valor.

    Para solucionar el problema, puedes intentar colocar paréntesis alrededor de la expresión de comparación para aclarar el orden de las operaciones. Alternativamente, es posible que necesites definir un operador < para la clase Type que se está utilizando en la expresión.

    Aquí está el fragmento de código relevante como referencia:

    Future<trailers>{},     <---línea de error--
    

    Para solucionar el error, puedes intentar cambiarlo por:

    (Future<trailers>{},)     // agregar paréntesis para aclarar el orden de las operaciones
    

    o

    Future<trailers>?{<}     // definir el operador `<` para la clase `Type`
    

    ¡Espero que esto ayude!

Comments are closed.