작성
·
129
0
안녕하세요 WebView강의 3버전으로 듣고 있습니다.
위의 사진은 강사님께서 올려주신 강의의 일부 스크린샷입니다.
controller는 nullable타입의 값이고 onWebViewCreated 메서드에서 컨트롤러의 값을 받아 대입을 하고 그 이후에 홈 버튼을 눌러서 null이 아닌 컨트롤러의 메서드 loadUrl을 호출하는 예제인데요.
왜 StatelessWidget을 사용하는지 모르겠습니다.
홈 스크린 위젯의 빌드 함수가 호출되기 전에 이미 컨트롤러는 null값이였고 빌드함수가 호출되면서 컨트롤러의 값을 대입하는 상태의 변환이 이뤄지는데 어떻게 홈 버튼에서 null값이 아닐 경우의 로직을 실행할 수 있나요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
StatelessWidget을 사용하는 이유는 상태가 바뀌지 않는 위젯이기 때문입니다. WebView 위젯은 상태가 변하는 위젯이 아니기 때문에 StatelessWidget을 사용하는 것입니다.
컨트롤러가 null일 때 홈 버튼을 누르면 그에 대한 예외 처리를 해주는 것이 좋습니다. 예를 들어, 컨트롤러가 null일 때는 홈 버튼을 비활성화하고, 컨트롤러가 대입된 이후에만 활성화하도록 설정하면 됩니다.
위의 예시 코드에서는 예시를 보여주기 위해 컨트롤러 대입 이전에 홈 버튼을 누르는 것을 가정했을 뿐이며, 실제 사용시에는 컨트롤러 대입 이후에만 버튼이 활성화되도록 구현하는 것이 좋습니다.
그리고, 이러한 예외 처리 외에도, WebView 위젯은 위험할 수 있으므로 안전하지 않은 내용을 접근하지 않도록 주의가 필요합니다.
감사합니다.