title: Webview not updating with setState change
body: <p>I'm having trouble understanding why I cant update a webview with a new URL. Right now, I load and get a URL that is saved using Shared Preferences and then I try and update a webview with that URL but the app shows a blank screen. I can load a URL initially if I want to but still can't update the URL with setState to display a different site in the webview.</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'dart:async';
  import 'package:shared_preferences/shared_preferences.dart';
  import 'package:webview_flutter/webview_flutter.dart';
  
  
  class BookStudy extends StatefulWidget {
    @override
    _BookStudy createState() =&gt; _BookStudy();
    }
  
    class _BookStudy extends State&lt;BookStudy&gt; {
  
    final Set&lt;String&gt; _favorites = Set&lt;String&gt;();
      var surl;
      final _key = UniqueKey();
      WebViewController controller;
  
    @override
      void initState(){
        super.initState();
  
        _getBookmark().then((startUrl){
           setState(() {
             print('startUrl: $startUrl');
              surl = startUrl;   
              controller.loadUrl(startUrl); 
            });
        });
    }
  
    @override
    Widget build(BuildContext context) {
      return Scaffold(
          appBar: AppBar(),
          body: Column(
            children: [
              Expanded(
                  child: WebView(
                      key: _key,
                      javaScriptMode: JavaScriptMode.unrestricted,
                      initialUrl: surl,
                      onWebViewCreated: (WebViewController webViewController) {
                          controller = webViewController;
                          }
                      ))
            ],
          ));
    }
  
    _saveBookmark(String url) async {
      final prefs = await SharedPreferences.getInstance();
      prefs.setString('bookmarkedPage', url);
      print('BOOKMARK SAVED!!!');
    }
  
     Future&lt;String&gt; _getBookmark() async {
        final prefs = await SharedPreferences.getInstance();
        var myMark = prefs.getString('bookmarkedPage') ?? '';
        if (myMark != '' &amp;&amp; myMark != null){
          print("FOUND BOOKMARK!");
          return myMark;
        }   
    }
  }
  </code></pre>