Как проверить данные в общих настройках, используя троицу в флаттере - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу проверить свои данные в sharedpreferences .. существует ли он или нет с использованием троичного кода ... есть ли способ сделать это? вот код

            Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                   //I want to check something inside sharedpreferences here but I don't have any idea to do that
                     (something I want to check) ? do something :
                      isLoading
                          ? Text("Loading...")
                          : (_image == null)
                              ? Text('In')
                              : (_data.length == 0)
                                  ? Text("Try again")
                                  : fail
                                      ? Text("Try again")
                                      : DateFormat("HH:mm:ss")
                                                  .format(DateTime.now()) ==
                                              "23:59:59"
                                          ? changeTime()
                                          : Text("Success")
                    ],
                  ),

1 Ответ

1 голос
/ 22 апреля 2020

Попробуйте следующим образом

Возьмите одну логическую переменную

bool isVisible = true;

Теперь обновите переменную isVisible внутри getLoginStatus() Метод

void getLoginStatus() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String userData = prefs.getString('YourKEY');
    if (userData?.isEmpty ?? true) {
      setState(() {
        isVisible = false;
      });
    } else {
      setState(() {
        isVisible = true;
      });
    }
  }

Теперь вам нужно позвонить getLoginStatus(), когда вам нужно проверить значение в sharedpreferences

Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[

                     isVisible ? do something :
                      isLoading
                          ? Text("Loading...")
                          : (_image == null)
                              ? Text('In')
                              : (_data.length == 0)
                                  ? Text("Try again")
                                  : fail
                                      ? Text("Try again")
                                      : DateFormat("HH:mm:ss")
                                                  .format(DateTime.now()) ==
                                              "23:59:59"
                                          ? changeTime()
                                          : Text("Success")
                    ],
                  ),
...