【问题标题】:Flutter & provider: How can I change texts by int value of the provider?Flutter & provider:如何通过提供者的 int 值更改文本?
【发布时间】:2020-08-31 05:09:39
【问题描述】:

如果更改通知的类型是 bool,我可以像这样更改文本:

...
Consumer<LoginOrSignup>(
  builder: (context, value, child) =>
      Text(value.isSignup? "Sign up" : "Login")
)
...

LoginorSignup.dart:

import 'package:flutter/foundation.dart';

class LoginOrSignup extends ChangeNotifier{
  bool _isSignup = false;

  bool get isSignup => _isSignup;
}

如果 _isSignup 类型是 int,我该如何更改文本?

【问题讨论】:

  • 不确定我是否理解这个问题 - 它们都是布尔值。我猜可以使用解析方法bool.parse 完成转换。你能详细说明一下吗?

标签: flutter dart


【解决方案1】:

可以,您应该在 LoginOrSignup 类中添加方法,然后在需要时调用此方法,如下所示:

import 'package:flutter/foundation.dart';

class LoginOrSignup extends ChangeNotifier{
  bool _isSignup = false;

  bool get isSignup => _isSignup;

  void changeStatus(bool status){
    _isSignup = status;
    notifyListeners();
  }
}

在你看来电话

value.changeStatus(false); //or true

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2020-01-17
    • 1970-01-01
    • 2020-07-19
    • 2020-09-08
    • 2020-02-06
    • 1970-01-01
    • 2020-06-01
    • 2015-01-23
    相关资源
    最近更新 更多