I have this const variable in flutter:

static const questions = [
    {
      "question": "question",
      "answers": ["1", "2"],
      "message":
          "message",
    }, 
]

how to access to "1" from dart??

I try using QuestionContent.questions[0]["answers"][0]. But I got error "The method '[]' can't be unconditionally invoked because the receiver can be 'null'"


Solution 1: Xuann Thucc

Try use:

Text((QuestionContent.questions[0] as Map<String, dynamic>)['answers'][0] ?? '')

or:

Text((questions[0]['answers'] as List<String>)[0]),


Solution 2: 聂超群

Try code below:

const questions = [
  {
    "question": "question",
    "answers": ["1", "2"],
    "message":
    "message",
  },
];
Map<String, Object> question = questions[0];
List<String> answers = question["answers"] as List<String>;
String firstAnswer = answers.elementAt(0);

The reason you get the error is the compiler could not tell whether your QuestionContent.questions[0]["answers"] is null or not:

enter image description here