Не удается проверить RadioButton в Flutter - PullRequest
0 голосов
/ 22 апреля 2020

Как обращаться с кодом, если ответ нулевой, при сохранении ответов я отправляю json .encode (ответы) для сохранения ответов. Также я не могу проверить любую кнопку-переключатель у меня есть json ответ, подобный этому

{
"reportId": 145,
"appointmentId": 24,
"candAns": null
"questionList": [
    {
        "quesionId": 1,
        "questionName": "Severe one-sided headaches"
    },
    {
        "quesionId": 2,
        "questionName": "Head Injury / Concussion"
    },
    {
        "quesionId": 3,
        "questionName": "Loss Of Memmory"
    },
    {
        "quesionId": 4,
        "questionName": "Fits / Epilepsy"
    },
    {
        "quesionId": 5,
        "questionName": "Dizziness / Fainting"
    }       
]

}

Когда пользователь вводит какой-либо ответ в клавишу CandAns, ответ выглядит следующим образом

  {
"reportId": 145,
"appointmentId": 24,
"candAns": {
    "1": "1",
    "2": "1",
    "3": "1",
    "4": "1",
    "5": "1"
},
"questionList": [
    {
        "quesionId": 1,
        "questionName": "Severe one-sided headaches"
    },
    {
        "quesionId": 2,
        "questionName": "Head Injury / Concussion"
    },
    {
        "quesionId": 3,
        "questionName": "Loss Of Memmory"
    },
    {
        "quesionId": 4,
        "questionName": "Fits / Epilepsy"
    },
    {
        "quesionId": 5,
        "questionName": "Dizziness / Fainting"
    }

]

}

Это мой код для радиокнопок

  RadioListTile(
                        groupValue: ans==null?0:
                       ans=="0"?false:true,
                        title: Text('Yes'),
                        value: true,
                        onChanged: (val) {
                          setState(() {
                            print(myList[0].candAns);
                            //if the candAns is not null add to the previous list of candAns
                            if(myList[0].candAns!=null)
                            {
                            myList[0].candAns.addAll({myList[0].questionList[index].quesionId.toString(): "1"});
                            print(myList[0].candAns);
                            ans=true;
                            saveAnswers(myList[0].candAns);
                            }
                            ///else create a new json and append
                            else{
                              newCandAns.addAll({myList[0].questionList[index].quesionId.toString(): "1"});
                               ans=true;
                            saveAnswers(newCandAns);

                            }

                          });
                        },
                      ),
                      RadioListTile(
                      groupValue: ans==null?0:
                       ans=="0"?false:true,
                        title: Text('No'),
                        value: false,
                        onChanged: (val) {
                          setState(() {
                          if(myList[0].candAns!=null)
                            {
                            myList[0].candAns.addAll({myList[0].questionList[index].quesionId.toString(): "0"});
                            print(myList[0].candAns);
                            ans=false;
                            saveAnswers(myList[0].candAns);
                            }
                            ///else create a new json and append
                            else{
                              newCandAns.addAll({myList[0].questionList[index].quesionId.toString(): "0"});
                               ans=false;
                            saveAnswers(newCandAns);

                            }
                          });
                        },
                      ),

Когда клавиша CandAns равна нулю, я не могу выбрать радиокнопки.

Получение такой ошибки в консоли Ожидается значение типа «Карта», но получено значение типа «_JsonMap»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...