title: Blazor (Client-side) StateHasChanged() not updating page
body: <p>I have a button on my page (component) that calls a Refresh() method when clicked. This method then calls the StateHasChanged(), but does not reload the page. The GetData() is calling an external API to load data from a database.</p>
  
  <pre><code>&lt;button class="btn btn-warning" @onclick="Refresh"&gt;Refresh&lt;/button&gt;
  
  code {
  
  protected override async Task OnInitializedAsync()
      {
          try
          {
              await GetData();
              base.OnInitialized();
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex.Message);
          }
  
      }
  
  protected async Task GetData()
      {
          try
          {
              results = await HttpClient.GetJsonAsync&lt;Results[]&gt;(ServiceEndpoints.GET_RESULTS);
          }
          catch (Exception ex)
          {
              Console.WriteLine("Error retrieving data from Oracle.", ex.Message);
          }
      }
  
  public void Refresh()
          {
              StateHasChanged();          
          }
  </code></pre>
  
  <p>My page (component) also has a form that has preloaded inputs that can be changed. I want the user to be able to edit the form, but be able to refresh the page by clicking the button to get back the original data. This was working on a previous version of Blazor, is there a known issue about this?</p>
  
  <pre><code>@page "/"
  @inherits IndexBase
  
  &lt;EditForm Model="@results"&gt;
  &lt;label&gt;&lt;strong&gt;Select a job to view its current parameters&lt;/strong&gt;&lt;/label&gt;
  &lt;div class="currentJobForm"&gt;
  
      &lt;InputSelect id="jobSelect" @bind-Value="jobSelected"&gt;
          @foreach (var items in results)
          {
              &lt;option value="@items.JOB_NAME"&gt;@items.JOB_NAME&lt;/option&gt;
          }
      &lt;/InputSelect&gt;
      &lt;button class="btn btn-warning" @onclick="SaveChanges" disabled="@IsDisabled"&gt;Save&lt;/button&gt;
      &lt;button class="btn btn-warning" @onclick="Refresh"&gt;Refresh&lt;/button&gt;
      &lt;button class="btn btn-danger" @onclick="DeleteJob"&gt;Delete Job&lt;/button&gt;
  &lt;/div&gt;    
      &lt;label&gt;&lt;strong&gt;Notify Parameters&lt;/strong&gt;&lt;/label&gt;
      &lt;div class="notifyParametersForm"&gt;
          @foreach (var item in results.Where(i =&gt; i.JOB_NAME == jobSelected))
          {
              &lt;div class="issueDescription"&gt;
                  &lt;label&gt;&lt;strong&gt;Issue Description&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="issueDesc" @bind-Value="item.JOB_HEADER" placeholder="Enter New Issue Description" /&gt;
              &lt;/div&gt;
              &lt;div class="sendSlack"&gt;
                  &lt;label&gt;&lt;strong&gt;Send Slack&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputSelect id="sendSlackSelect" @bind-Value="item.SENDSLACK"&gt;
                      @foreach (var items in InitializeData.SendSlacks)
                      {
                          &lt;option value="@items.SendSlackName"&gt;@items.SendSlackName&lt;/option&gt;
                      }                        
                  &lt;/InputSelect&gt;
              &lt;/div&gt;
              &lt;div class="slackUser"&gt;
                  &lt;label&gt;&lt;strong&gt;Slack User&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="slackUser" @bind-Value="item.SLACK_USER" placeholder="Enter New Slack User" /&gt;
              &lt;/div&gt;
              &lt;div class="slackChannel"&gt;
                  &lt;label&gt;&lt;strong&gt;Slack Channel&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputSelect id="sendSlackChannel" @bind-Value="item.SLACK_CHANNEL"&gt;
                      @foreach (var items in InitializeData.SlackChannels)
                      {
                          &lt;option value="@items.SlackChannelName"&gt;@items.SlackChannelName&lt;/option&gt;
                      }                        
                  &lt;/InputSelect&gt;
              &lt;/div&gt;
              &lt;div class="slackUrl"&gt;
                  &lt;label&gt;&lt;strong&gt;Slack URL&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="slackUrlTextBox" @bind-Value="item.SLACK_URL" placeholder="Enter New Slack Url" /&gt;
              &lt;/div&gt;
              &lt;div class="sendMail"&gt;
                  &lt;label&gt;&lt;strong&gt;Send Mail&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputSelect id="sendMailSelect" @bind-Value="item.SENDMAIL"&gt;
                      @foreach (var items in InitializeData.SendMails)
                      {
                          &lt;option value="@items.SendMailName"&gt;@items.SendMailName&lt;/option&gt;
                      }
                  &lt;/InputSelect&gt;
              &lt;/div&gt;
              &lt;div class="mailFrom"&gt;
                  &lt;label&gt;&lt;strong&gt;From:&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="from" @bind-Value="item.MAILFROM" placeholder="Enter New Mail From" /&gt;
              &lt;/div&gt;
              &lt;div class="mailTo"&gt;
                  &lt;label&gt;&lt;strong&gt;To:&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="to" @bind-Value="item.MAILTO" placeholder="Enter New Mail To" /&gt;
              &lt;/div&gt;
              &lt;div class="subject"&gt;
                  &lt;label id="subjectLabel"&gt;&lt;strong&gt;Subject:&lt;/strong&gt;&lt;/label&gt;
                  &lt;InputText id="subject" @bind-Value="item.EMAIL_SUBJECT" placeholder="Enter New Subject" /&gt;
              &lt;/div&gt;
          }
      &lt;/div&gt;
  &lt;/div&gt;
  </code></pre>