首页 > 解决方案 > Flutter & provider:如何通过提供者的 int 值更改文本?

问题描述

如果更改通知器的类型是 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,我该如何更改文本?

标签: flutterdart

解决方案


是的,您可以,您应该在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

推荐阅读