title: TextView doesn't synchronize the binding variable in SwiftUI
body: <p>I created a simple <code>TextView</code> like this:</p>
  <pre class="lang-swift prettyprint-override"><code>import SwiftUI
  
  struct TextView: UIViewRepresentable {
  
      @Binding var inputText: String
  
      func makeUIView(context: UIViewRepresentableContext&lt;Self&gt;) -&gt; UITextView {
          return UITextView()
      }
  
      func updateUIView(_ uiView: UITextView, context: Context) {
  //        uiView.text = self.inputText
          self.inputText = uiView.text
      }
  }
  </code></pre>
  <p>And the main view contains a variable with a <code>@State</code> wrapper.</p>
  <pre class="lang-swift prettyprint-override"><code>import SwiftUI
  
  struct Test: View {
      @State private var inputText: String = &quot;&quot;
      
      var body: some View {
          VStack {
              TextEditor(text: $inputText)
              TextView(inputText: $inputText)
          }
      }
  }
  
  struct Test_Previews: PreviewProvider {
      static var previews: some View {
          Test()
      }
  }
  </code></pre>
  <p>As I understand, the <code>TextView</code> and <code>TextEditor</code> are connected by this <code>inputText</code>, who has a <code>@Binding</code> wrapper in the definition of <code>TextView</code>. Thus if I type in one of them, another should show the same text. However, to my surprise, the text in these two are completely separated with each other.</p>
  <p>If I change the <code>self.inputText = uiView.text</code> to <code>uiView.text = self.inputText</code>, then when I type in <code>TextEditor</code>, the <code>TextView</code> would show the same text, but if I type in <code>TextView</code>, then nothing happens in <code>TextEditor</code>.</p>
  <p>Why does this happen?</p>