【问题标题】:Access field value from other page in flutter, using bloc pattern使用 bloc 模式从 Flutter 中的其他页面访问字段值
【发布时间】:2022-01-14 12:54:48
【问题描述】:

我想从其他页面访问令牌以发出授权请求。

我正在使用 rxdart、提供程序和流。

我检查了其他问题,但我认为没有关于此问题的最新答案。

这里我有一个提供者:

@override
  Widget build(BuildContext context) {
    return FormProvider(
        child: MaterialApp(
        .... routing through other pages ...

我的集团:

  final _accessToken = BehaviorSubject<String>();
  ValueStream<String> get accessToken => _accessToken.stream;
  StreamSink get accessTokenSink => _accessToken.sink;
  accessTokenSink.add("123");
  print(accessToken.value); --> "123"
  

MaterialApp 的其中一个页面:

final accessToken = FormBloc().accessToken;
print(accessToken.value); --> ValueStream has no value. You should check ValueStream.hasValue before accessing ValueStream.value,
or use ValueStream.valueOrNull instead.

如何确保我在每个页面中都获得了 123 值? 谢谢!

【问题讨论】:

    标签: flutter stream bloc rxdart


    【解决方案1】:

    我相信您必须从stream 中获取价值,例如FormBloc().stream.value 或类似的东西。正常情况是实现StreamBuilder。看看这个article 可能会有所帮助

    【讨论】:

    • 我已经阅读了这篇文章,我正在使用 StreamBuilders 作为小部件,即字段和组件,它们工作正常,我不知道为什么或如何在我的情况下使用 StreamBuilder?
    • 在你的情况下你不应该使用 StreamBuilder,我只说是正常情况。从流中获取价值是否有效?
    • 我希望它能够工作 :( 我的代码执行类似于 FormBloc()._accessToken.stream.value 的操作,但由于我无法访问我定义的类的 _ 成员 accessToken = _accessToken.stream 它总是返回值为 null
    猜你喜欢
    • 2018-12-15
    • 2020-03-26
    • 2020-11-02
    • 2019-06-13
    • 2019-12-19
    • 2019-11-20
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多