title: Invalid attempt to spread non-iterable instance
body: <p>Would appreciate any help here.  I have this piece of code which is trying to update my State whenever a form field receives a change.  This worked fine in the previous version of React, but after upgrading to the latest version I'm getting the error "Invalid attempt to spread non-iterable instance".</p>
  
  <p>I understand that I need to normalize my State, which I plan to.  However, that will involve a significant refactor which I hoping to avoid at the moment with a quick fix.</p>
  
  <p><strong>Error</strong></p>
  
  <p><a href="https://i.stack.imgur.com/mhaeQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mhaeQ.png" alt="enter image description here"></a></p>
  
  <p><strong>Code</strong></p>
  
  <pre><code>handleMaterialTypeChange = (event, data) =&gt; {
      const material = this.state.controls.materials.materials;
      material[data.searchInput].material_type = data.value;
  
      this.setState(prevState =&gt; ({
          controls: {
              ...prevState.controls,
              materials: {
                  ...prevState.controls.materials,
                  materials: [
                      ...prevState.controls.materials.materials[data.searchInput],
                      ...material
                  ]
              }
          }
      }));
  };
  </code></pre>
  
  <p><strong>State Example:</strong></p>
  
  <pre><code>state = {
      controls: {
          materials: {
              value: "",
              materials: [
                  {
                      material_type: "",
                      material: ""
                  }
              ],
              validation: {
                  required: true,
                  minLength: 10
              },
              valid: false,
              touched: false
          }
      }
  }
  </code></pre>