So I have this provider
import 'package:flutter/material.dart';
import 'package:gotaxi_flutter/enums.dart';
import 'package:gotaxi_flutter/models/google_places_models/google_places_models.dart';
class PlaceInfo {
GooglePlace place;
bool isDestination;
PlaceInfo(this.place, this.isDestination);
}
class RideInfoProvider with ChangeNotifier {
CurrentRideScreen _currentRideScreen = CurrentRideScreen.none;
PlaceInfo? _place;
PlaceInfo? get place => _place;
CurrentRideScreen get currentRideScreen => _currentRideScreen;
void setCurrentRideScreen(CurrentRideScreen screen) {
_currentRideScreen = screen;
notifyListeners();
}
//set origin or destination locations
void setPlace(GooglePlace place, bool isDestination) {
_place = PlaceInfo(place, isDestination);
notifyListeners();
}
}
How can I create something similar to the following inside my widget:
@override
void initState() {
super.initState();
_rideInfoProvider = RideInfoProvider();
_rideInfoProvider.addListener(() {
print("RideInfoProvider changed");
if (_rideInfoProvider.place != null) {
print(_rideInfoProvider.place);
//run other functions or instances that exist in this widget and may utilize the place variable
}
});
}
Because otherwise, I have to move the whole listener logic and variables to the provider.