Json In Provider方法抛出一个错误NoSuchMethod:getter'';被调用为空

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,

我试图调用一个变量placeName,但只返回null。 NoSuchMethod错误:对null调用了getter'placeName'。收件人:空 尝试呼叫:placeName 好像它无法从url读取当前位置

在我的主页上

  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工作得很好。