flutter - Dart/Flutter中的全局变量

标签 flutter dart

我写了一个函数,通过flutter中的rest api登录用户。我想使用帖子的响应,但是我不知道如何将变量导出到另一个文件中。

我想使用userID,但是我不知道如何,
有人可以帮我吗?

class LoginScreenState extends State<LoginScreen>{

  makeLoginRequest(String email, password) async {
    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    Map data = {
      'email':email,
      'password':password
    };
    var jsonResponse;
    var url = 'http://10.0.2.2:80/user/login';
    var response = await http.post(url, body:data);
    if(response.statusCode == 200){
      jsonResponse = json.decode(response.body);

      int userID = jsonResponse['id'];//HERE

if(jsonResponse != null){
        setState(() {
          _isLoading = false;
        });
        sharedPreferences.setString("token", jsonResponse['token']);
        Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => UserPage()), (Route<dynamic> route) => false);
      }
    }

最佳答案

在您的UserPage中,使用变量获取ID。

示例:

class UserPage extends StatefulWidget {
  final int userId;

  UserPage({@required this.userId});

  @override
  _UserPageState createState() => _UserPageState();
}

class _UserPageState extends State<UserPage> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

在登录后导航到UserPage时,传递用户ID:
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => UserPage(userId: userID)), (Route<dynamic> route) => false);

当您想要在UserPage中获取userId的值时,可以通过以下方式使用它: widget.userId

关于flutter - Dart/Flutter中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60822378/

相关文章:

dart - 如何在 Flutter 中处理密码中的 TextField 验证

Flutter - Firebase,未处理的异常 : PlatformException(channel-error, 无法在 channel 上建立连接。,null,null)

flutter - 是否可以在无需定义方法或属性的情况下插入小部件列表?

Dart pub publish 在身份验证后给出错误

python - 如何让 Dart 生成器函数像 Python 一样运行?

flutter - flutter如何计算屏幕宽度

dart - 是否可以使用 charts_flutter 包旋转饼图?

dart - Flutter - 打开应用程序时提示输入 TouchID/FaceID

flutter - 如何从这种类型的列表访问单个值?

dart - 如何在我的 flutter 应用程序中启动应用程序?