如何在整体颤振中处理列表模型



我正试图在登录页面中使用BLOC。。但我总是在说Exception has occurred. _TypeError (type 'List<LoginRespon>' is not a subtype of type 'String')这是代码的异常情况下暂停

isClick == true
? StreamBuilder(
initialData: bloc.inData(_name.text,_password.text),
stream: bloc.loginData,
builder: (context,
AsyncSnapshot snapshot) {
if (snapshot.hasData) {
print(snapshot.data);
print('ppp ');
return Text('ok');
} else
return Text(snapshot.error
.toString());
})
: RaisedButton(
child: Text('Login'),
onPressed: () {
setState(() {
isClick = true;
});
},
),

这是集团文件

class MyBLoc{
final _repository = Repository();
final _loginController = StreamController<String>();
Stream<String> get loginData => _loginController.stream;
final _name = BehaviorSubject<String>();
final _password = BehaviorSubject<String>();
saving(){
_repository.saving(_name.value,_password.value);
}

inData(String name, String password) async {
// I get paused on exception inside this method...
String result = await _repository.saving(name, password);
_loginController.sink.add(result);
}

dispose(){
_input.close();
_loginController.close();
_password.close();
}
}
final bloc = MyBLoc();

这是我的存储库文件

class Repository{
static final userAPIProvider = UserProvider();
Future saving(String name, String password) => userAPIProvider.saving(name, password);
}

这是我的供应商

class UserProvider {
final _url = '...';
Future<List<LoginRespon>> saving(String name, String password) async {
List<LoginRespon> datalogin = [];
try {
bool trustSelfSigned = true;
HttpClient httpClient = new HttpClient()
..badCertificateCallback =
((X509Certificate cert, String host, int port) => trustSelfSigned);
IOClient client = new IOClient(httpClient);
print("cek");
final response = await client.post(_url,
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
},
body: json.encode({
"name": name,
"pas": password,
}));
Map<String, dynamic> responseJson = json.decode(response.body);
if (responseJson["status"] == "200") {
datalogin.add(LoginRespon(
status: responseJson['status'],
data: Data(
name: responseJson['data']['name'],
status: responseJson['data']['status'])));
return datalogin;
} else {
print("ppp");
}
} on Exception {
rethrow;
}
return datalogin;
}}

对于我的LoginSpon模型,这里提供了如何在flutter中从json字符串创建列表在inData方法中的块文件内发生异常时暂停Exception has occurred. _TypeError (type 'List<LoginRespon>' is not a subtype of type 'String')有办法解决这个问题吗

在MyBloc中,返回的值应该是String

String result = await _repository.saving(name, password); 

但存储库中的以下行并非如此

Future saving(String name, String password) => userAPIProvider.saving(name, password);

它正在返回List<LoginRespon>

最新更新