Экземпляр 'Future <dynamic>' во флаттере - PullRequest
0 голосов
/ 18 апреля 2019

Я получаю int Id с сервера, который в HTTP-запросе во флаттере, это нормально, и я хочу сохранить это значение в переменной, но когда я вызываю возвращаемое значение, я получаю эту ошибку Экземпляр 'Future', любое предложение ?? Вот код

                    child: RaisedButton(onPressed:() {
                    CurrentPrjId= SaveProject();
                    print("CurrentPrjId Is saved CurrentPrjId :::::::: " );
                    print(CurrentPrjId);
                    Navigator.of(context).pushReplacementNamed('/AllUSerStories');
                }
//Save Project

  Future SaveProject() async {

//SaveProjectResult has the id of the current created project which i need that for its user stories
var SaveProjectResult = await GetPostProjects().createProject(_ProjectnameController.text, _CustomernameController.text, _dropNewItem, _dropNewItem2, _StartDateController.text, _EndDateController.text,);
print(":::::::::::::::::::::::::::::::The Project Is Created And Here Its ID In SaveProject:::::::::");
print(SaveProjectResult);
return SaveProjectResult;

}

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

извините за поздний ответ.Вы добавили ожидание в неправильном месте, к сожалению.Попробуйте что-то вроде этого:

                   child: RaisedButton(onPressed:() async {
                    CurrentPrjId=  await SaveProject();
                    print("CurrentPrjId Is saved CurrentPrjId :::::::: " );
                    print(CurrentPrjId);
                    Navigator.of(context).pushReplacementNamed('/AllUSerStories');
                }
//Save Project

  Future SaveProject() async {

//SaveProjectResult has the id of the current created project which i need that for its user stories
var SaveProjectResult = await GetPostProjects().createProject(_ProjectnameController.text, _CustomernameController.text, _dropNewItem, _dropNewItem2, _StartDateController.text, _EndDateController.text,);
print(":::::::::::::::::::::::::::::::The Project Is Created And Here Its ID In SaveProject:::::::::");
print(SaveProjectResult);
return SaveProjectResult;

или короче:

                   child: RaisedButton(onPressed:() async {
                    CurrentPrjId=  await GetPostProjects().createProject(_ProjectnameController.text, _CustomernameController.text, _dropNewItem, _dropNewItem2, _StartDateController.text, _EndDateController.text,);
                    print("CurrentPrjId Is saved CurrentPrjId :::::::: " );
                    print(CurrentPrjId);
                    Navigator.of(context).pushReplacementNamed('/AllUSerStories');
                }
0 голосов
/ 18 апреля 2019

Без вашего кода трудно догадаться, что происходит .. Но вы можете попытаться дождаться завершения будущего .. так что сделайте это:

methOdThatLoadsId().then((id) => print("Id that was loaded: $id"));

или

var id = await methodThatLoadsId();

Удачи:)

...