작성
·
94
0
Random Number Generator 학습중 children: [] 리스트에 List<dynamic> 을 넣는 방법을 문의드립니다.
return [
['1', '2', '3'],
['4', '5', '6'],
['7', '8', '9'],
]
.map((e) => Row(
children: e
.map(
(e) => Text(
이렇게는 적용될 때는 <Widget> 타입으로 캐스팅되어 잘 실행되는 것 같습니다.
List test = [
['1', '2', '3'],
['4', '5', '6'],
['7', '8', '9'],
];
return test
.map((e) => Row(
children: e
.map(
(e) => Text(
이렇게 하면 type 'List<dynamic>' is not a subtype of type 'List<Widget>' 이렇게 나오네요.
children 의 정의가 List<Widget> 이서 그런것으로 생각됩니다.
일일이 <Widget> 으로 캐스팅해서 타입을 맞추어 넣는다면 배보다 배꼽이 더 큰 것 같아서 이런 경우 간단한 방법이 있는지, 어떻게 구현하면 좋을 지 문의드립니다.
답변 1
0
안녕하세요!
children 파라미터에 List<Widget> 대신 List<dynamic>을 넣을 수 있는 방법에대한 질문 맞으실까요?
그런 방법은 존재하지 않습니다. 오히려 되면 절대로 안된다고 말하는게 맞을 것 같습니다.
children 파라미터에 List<Widget> 만 입력 될 수 있도록 정의가 돼있으니 당연히 List<Widget>만 넣을 수 있어야 합니다.
혹시 제가 질문을 잘못 이해했다면 다시 질문 주세요!
감사합니다!
네 답변 감사합니다.
질문의 의도는 그게 맞습니다만.. dymanic 을 Widget 으로 캐스팅 해서 넣을 수 있는 방법을 여쭤본다기보다는 children 에 [ ['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ] 을 직접 입력하지 않고 메소드나 파라메터로 받아서 만들고 싶어서 단순히 List 로 선언해서 넣다보니 dynamic 이라 되지 않아 어떻게 외부에서 받아서 올 수 있을까를 질문드렸던 것이었어요.
고민해보다가 아래처럼 명시적으로 선언하니 잘되었습니다.
감사합니다.