@trickster2019

Как сделать provider для пользователя?

Нужно сделать так чтобы из любой точки приложения можно было получить доступ к ip и token зарегистрированного пользователя.
Есть функция регистрации пользователя.
@override
  void initState() {
    super.initState();
    getData();
  }

  getData() async {
    posts = await createUser(context);
    if (posts != null) {
      setState(() {
        isLoaded = true;
      });
    }
  }

  Future<List<User>?> createUser(BuildContext context) async {
    var r = await http.post(
      Uri.parse("http://217.71.129.139:4800/create_user.php"),
      body: {
        "name": _nameController.text,
        "mail": _mailController.text,
        "password": _passwordController.text,
      },
    );
    return userFromJson(r.body);
  }

есть класс который является бозой для переменной post.
import 'dart:convert';

List<User> userFromJson(String str) =>
    List<User>.from(json.decode(str).map((x) => User.fromJson(x)));

String userToJson(List<User> data) =>
    json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class User {
  User({
    required this.id,
    required this.name,
    required this.mail,
    required this.password,
    required this.token,
  });

  int id;
  String name;
  String mail;
  String password;
  String token;

  factory User.fromJson(Map<String, dynamic> json) => User(
        id: json["id"],
        name: json["name"],
        mail: json["mail"],
        password: json["password"],
        token: json["token"],
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "name": name,
        "mail": mail,
        "password": password,
        "token": token,
      };
}

и есть provider для пользователя
class User_pril with ChangeNotifier {
  final int _id = 0;
  int get id => _id;

  String _name = '';
  String get name => _name;

  String _mail = '';
  String get mail => _mail;

  String _password = '';
  String get password => _password;

  String _token = '';
  String get token => _token;

  void addUser(User user) {
    notifyListeners();
  }
}

но я не понимаю какие операции должны быть в addUser
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Neonoviiwolf
Flutter developer
вот зачем просить помощи, коли гугл поможет быстрее - нужно прочитать про любой архитектурный паттерн для flutter и наконец перестать писать бизнес код в виджетах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы