Afirmación fallida: la expresión booleana no debe ser nula

usuario11065582

Almacené isQuickvalor desde el backend. Usé sqflite para almacenar en caché. Siempre el resultado esfalse

En mi página de panel,

 bool isQuick;
 @override
  void initState() {
 isQuick = false;

 timer1 = Timer.periodic(Duration(seconds: 5), (Timer t) {
  checkQuick(_url, tokens, isQuick);
});

timer = Timer.periodic(Duration(seconds: 10), (Timer t) {
      Future datas = HelperDatabase1().displayGetUserPreference();
      datas.then((v) => {
        data = v,
        print('new data ${data[0].data}'),
        data[0].data == 0 ? this.isQuick == false : this.isQuick == true,
        print(this.isQuick)
      });
      submitRequestSave(_url, tokens);
    });
    }

en mi método de construcción,

 @override
  Widget build(BuildContext context) {
  return WillPopScope(
        onWillPop: () async => false,
        child: Scaffold(
          backgroundColor: Colors.white,
          appBar: AssetRegisterAppBar(context),
          body: makeBody(litems, litems_icon, _url, this.isQuick, isOffline,
              statusbarHeight, context),
        ));
}

checkQuick método,

  Future checkQuick(String url, String token, bool isQuick) async {
    print('quick $isQuick');
    bool newQuick;
    final response = await http.get(
      '$url/nativeapi/v1.0/User/GetUserPreference',
      headers: {'Authorization': 'Bearer $token'},
    );
    final jsonResponse = json.decode(response.body);
    GetUserPreference model = GetUserPreference.fromJson(jsonResponse);
    var data = GetUserPreference(data: model.data);
    print(data.data);
    if (data.data == 0) {
      newQuick = false;
    } else {
      newQuick = true;
    }
    print('new quick $newQuick');
    if (isQuick != newQuick) {
      int newData;
      if (newQuick) {
        newData = 1;
      } else {
        newData = 0;
      }
      await HelperDatabase1().updateGetUserPreference(1, newData);
    }
  }
Michael Yuwono

Su isQuick estaba nullen el momento en que se llamó para crear su página. Asígnele un valor predeterminado:

@override
void initState() {
  isQuick = false; // or true

  Future datas = HelperDatabase1().displayGetUserPreference();
  datas.then((v) =>
    {data = v, data[0].data == 0 ? this.isQuick == false : this.isQuick == true});
}

ACTUALIZAR

Para abordar el problema principal, debe mostrar los widgets alternativos (como CircularProgressIndicator) cuando el valor de isQuicktodavía se está cargando (o aún null).

return WillPopScope(
  onWillPop: () async => false,
  child: Scaffold(
    backgroundColor: Colors.white,
    appBar: AssetRegisterAppBar(context),
    body: isQuick == null
      ? CircularProgressIndicator()
      : makeBody(litems, litems_icon, _url, this.isQuick, isOffline, statusbarHeight, context),
  ),
);

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Aserción fallida: la expresión booleana no debe ser una excepción nula

Aserción fallida: la expresión booleana no debe ser una excepción nula

Aserción fallida: la expresión booleana no debe ser una excepción nula

Aserción fallida: la expresión booleana no debe ser nula con el modelo con ámbito en flutter

TypeError: la súper expresión debe ser nula o una función, no indefinida con Babeljs

¿La súper expresión debe ser nula o una función?

Error de reacción 0.14.2: la súper expresión debe ser nula o una función

La súper expresión debe ser nula o una función, no indefinida cuando se usa React-Sparklines

Validación fallida La clase debe existir

Ascua pertenece a la afirmación fallida

Se debe proporcionar una cadena no nula a un widget de texto. 'paquete: flutter / src / widgets / text.dart': afirmación fallida: línea 378 pos 10: 'datos! = nulo'

No se puede iniciar la aplicación springboot: la ubicación del recurso no debe ser nula

TypeError: la súper expresión debe ser nula o una función al intentar crear una opción múltiple simple en React-Native

TypeError: la súper expresión debe ser nula o una función al intentar crear una opción múltiple simple en React-Native

La expresión de cambio debe ser bool

"La expresión debe ser un valor LV modificable"

C ++, la expresión debe ser un lvalue modificable

La superexpresión debe ser nula o una función (marcador personalizado)

¿La superexpresión debe ser nula o una función? Reaccionar

React-native: la superexpresión debe ser nula o una función, no indefinida

RNMK: la superexpresión debe ser nula o una función

La superexpresión debe ser nula o una función (marcador personalizado)

Simplifica la expresión booleana

simplificar la expresión booleana AND OR

Error: la identificación proporcionada no debe ser nula para GeneratedValue en JPA

"La intención no debe ser nula" al enviar cadenas de una actividad a otra

eventualmente no intenta la segunda afirmación en la primera afirmación fallida

IllegalArgumentException: la entidad no debe ser nula

¿Cómo fusionar nula para la condición booleana?

TOP Lista

CalienteEtiquetas

Archivo