Reputation: 105
my code:
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
void main(){
runApp(myapp());
}
info(a){
return a;
}
class myapp extends StatelessWidget{
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: homepage(),
);
}
}
class homepage extends StatefulWidget{
@override
_homePage createState()=>_homePage() ;
}
class _homePage extends State<homepage>{
@override
Widget build(BuildContext context) {
// TODO: implement build
return StreamBuilder(stream:Stream.periodic(Duration(seconds: 3),(a)=>a) ,
builder: (ctx, snapshot){
return Scaffold(
appBar: AppBar(title: Text(
(snapshot.hasData && snapshot.data < 10)?"${snapshot.data}":"demo"),
),
body: Center(
child: snapshot .connectionState==ConnectionState.waiting?CircularProgressIndicator():Text("done"),
),
);
},);
}
}
i have a error :
The operator '<' can't be unconditionally invoked because the receiver can be 'null'. Try adding a null check to the target ('!').
when i change snapshot.hasData && snapshot.data < 10
to snapshot.hasData && snapshot.data! < 10
or snapshot.hasData && snapshot!.data < 10
the error does not solve
dose anyone know the solution?
Upvotes: 0
Views: 2257
Reputation: 11881
You are getting this error because null safety is turned on. So either turn it off https://dart.dev/null-safety/unsound-null-safety
Or
return StreamBuilder<int?>( # add type
stream: Stream.periodic(Duration(seconds: 3), (a) => a),
builder: (ctx, snapshot) {
return Scaffold(
appBar: AppBar(
title: Text((snapshot.hasData && snapshot.data! < 10) # add bang operator
? "${snapshot.data}"
: "demo"),
),
Upvotes: 1