Json In Provider方法抛出一个错误NoSuchMethod:getter'';被调用为空
我试图调用一个变量placeName,但只返回null。 NoSuchMethod错误:对null调用了getter'placeName'。收件人:空 尝试呼叫:placeName 好像它无法从url读取当前位置 在我的主页上Json In Provider方法抛出一个错误NoSuchMethod:getter'';被调用为空,json,flutter,dart,null,provider,Json,Flutter,Dart,Null,Provider,我试图调用一个变量placeName,但只返回null。 NoSuchMethod错误:对null调用了getter'placeName'。收件人:空 尝试呼叫:placeName 好像它无法从url读取当前位置 在我的主页上 GestureDetector( onTap: () async { var response = await Navigator.push(context,
GestureDetector(
onTap: () async {
var response = await Navigator.push(context, MaterialPageRoute(
builder:(BuildContext context) => SearchPage()
));
if(response == 'getDirection'){
showDetailSheet();
}
},
在我的搜索页面中
void searchPlace(String placeName) async {
if(placeName.length > 1 ){
String url = 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$placeName&key=$mapKey&sessiontoken=1234567890&components=country:hu';
var response = await RequestHelper.getRequest(url);
if(response == 'failed') {
return;
}
if(response['status'] == 'OK'){
var predictionsJson = response['predictions'];
var thisList = (predictionsJson as List).map((e) => Prediction.fromJson(e)).toList();
setState(() {
destinationPredictionList = thisList;
});
}
print(response);
}
}
@override
Widget build(BuildContext context) {
String address = Provider.of<AppData>(context).pickupAddress.placeName ?? '';
pickupController.text = address;
return Scaffold(....)
void searchPlace(字符串placeName)异步{
如果(placeName.length>1){
字符串url='0https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$placeName&key=$mapKey&sessiontoken=1234567890&components=country:hu';
var response=await RequestHelper.getRequest(url);
如果(响应==“失败”){
返回;
}
如果(响应['status']=='OK'){
var predictionsJson=响应['predictions'];
var thisList=(predictionsJson作为列表).map((e)=>Prediction.fromJson(e)).toList();
设置状态(){
destinationPredictionList=此列表;
});
}
打印(回复);
}
}
@凌驾
小部件构建(构建上下文){
字符串地址=Provider.of(context.pickupAddress.placeName??”;
pickupController.text=地址;
返回脚手架(……)
谢谢!您的appData类从未初始化或从未正确初始化。显示您的appData类。显示您的appData类。您在使用前是否初始化了提供程序类?例如
provider(create:(\u)=>MyModel(),child:…)
请确保。执行此操作provider.of(上下文).pickupAddress!.placeName???”;
在pickupAddressclass AppData扩展ChangeNotifier后添加!
{Address pickupAddress;Address destinationAddress;void UpdateAppAddress(地址拾取){pickupAddress=pickupAddress;notifyListeners();}void updateDestinationAddress(地址目的地){destinationAddress=destination;notifyListeners();}}在pickupAddress之后,我写了一个?在那里…它终于可以工作了,但是我已经可以打开Searchpage了,位置为空。没有数据,即使API工作得很好。