Flutter 如何从另一个提供程序内部的提供程序接收数据
我想知道如何从下面我的提供程序类Flutter 如何从另一个提供程序内部的提供程序接收数据,flutter,flutter-provider,Flutter,Flutter Provider,我想知道如何从下面我的提供程序类Player中名为的提供程序类接收数据。正如您在我的示例中看到的,我有一个play函数,它需要数据并等待字符串。数据位于名为provider.of(context,listen:false)的提供者字符串中 由于上下文的原因,我遇到了错误。没有上下文和我实现Provider.of(context,listen:false).url的方法是错误的。所以我的问题是:如何实现Provider.of(context,listen:false).url正确的方法?如何接收这
Player
中名为
的提供程序类接收数据。正如您在我的示例中看到的,我有一个play函数,它需要数据并等待字符串。数据位于名为provider.of(context,listen:false)的提供者字符串中代码>
由于上下文的原因,我遇到了错误。没有上下文和我实现Provider.of(context,listen:false).url的方法代码>是错误的。所以我的问题是:如何实现Provider.of(context,listen:false).url代码>正确的方法?如何接收这些数据?谢谢你的帮助
class Player with ChangeNotifier {
String path;
final url = Provider.of<Data>(context, listen: false).url;
void setPlayList(videosList) {
url = path;
}
Future play() async {
//my function
await player.play(path);
playerState = PlayerState.playing;
notifyListeners();
}
}
使用ChangeNotifier类播放器{
字符串路径;
final url=Provider.of(context,listen:false).url;
作废设置播放列表(视频列表){
url=路径;
}
Future play()异步{
//我的职能
等待玩家。玩(路径);
playerState=playerState.playing;
notifyListeners();
}
}
您可以使用ChangeNotifierProxyProvider
:
ChangeNotifierProxyProvider(
创建:()=>Player(),
更新:(u,数据,播放器)=>player..update(数据),
)
在您的Player
课程中:
使用ChangeNotifier类播放器{
字符串路径;
字符串url;
无效更新(数据){
_url=data.url;
}
...
}
谢谢你的回复,你能给我举一个我上面代码的例子吗?问候您是否只想从数据类中接收url
,或从Player
类中修改此值?如果您向我展示两种方法,我将不胜感激,以便我可以从中学习。:)但是对于这个例子,我只需要从数据类接收url
。