如何在 Flutter bloc 中访问另一个 bloc 的状态

问题描述 投票:0回答:1

我对 flutter bloc 状态管理比较陌生,所以这里是我需要访问另一个 bloc 状态的场景

我的flutter应用程序中有两个块,第一个是UserBloc,它在其状态(UserState)中存储用户会话id或令牌,第二个是MediaBloc,该块需要用户会话id或令牌来获取登录的用户媒体列表

用户区块

class UserBloc extends Bloc<UserState, UserEvent>{

}

class UserState{
   String token;
   UserState({this.token});
}

媒体集团

class MediaBloc extends Bloc<MediaState, MediaEvent>{
   on<FetchMediaEvent>((event, state) async {
        List<Media> mediaList = await fetchUserMedia(token: ''); // how to access value of token which is in UserBloc state
   });
}

class MediaState{
   List<Media> mediaList;
   MediaState({this.mediaList});
}


class FetchMediaEvent {
}
flutter dart bloc
1个回答
0
投票

doc中你可以看到两种方法:

  1. 通过演示连接区块
  2. 通过域连接区块

您可以在那里找到如何操作的示例。 但就你而言,

UserBloc
很有可能是全球性的。每当在代码中添加一个
FetchMediaEvent
事件到
MediaBloc
时,你总是可以这样做:

...
    final token = context.read<UserBloc>().state.token;
    context.read<MediaBloc>().add(FetchMediaEvent(token));
...

地点:

class FetchMediaEvent extends MediaEvent {
 const FetchMediaEvent()this.token;

 final String token;
}
© www.soinside.com 2019 - 2024. All rights reserved.