title: error: The argument type '(int) → dynamic' can't be assigned to the parameter type '(String) → void'
body: <p>I have some fields which post <code>String</code> and <code>int</code>, the <code>String</code> fields are working properly and I am getting these values at the db, the at the <code>int</code> type fields I'm getting this error message. </p>
  
  <blockquote>
    <p>The argument type '(int) → dynamic' can't be assigned
    to the parameter type '(String) → void'.</p>
  </blockquote>
  
  <p>I'm using <code>bloc</code> to post to a firebase db. </p>
  
  <p>here is how it looks. </p>
  
  <pre><code>Widget build(BuildContext context) {
      final trackerBloc = Provider.of&lt;TrackerBloc&gt;(context);
      String docId = DateTime.now().millisecondsSinceEpoch.toString();
  
      return Scaffold(
        appBar: AppBar(
          title: Text('Create'),
        ),
        body: SingleChildScrollView(
          child: Padding(
            padding: EdgeInsets.all(20.0),
            child: Column(
              children: &lt;Widget&gt;[
                Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Text(
                    'Create',
                    style: TextStyle(fontSize: 20.0),
                  ),
                ),
                _buildNumberField(trackerBloc),
   ...
  
  </code></pre>
  
  <p>the <code>textField</code> itself looks like this:</p>
  
  <pre><code>  Widget _buildNumberField(TrackerBloc trackerBloc) {
      return StreamBuilder&lt;Object&gt;(
        stream: trackerBloc.numberStream,
        builder: (context, snapshot) {
          return TextField(
            controller: _controllerNumber,
            onChanged: trackerBloc.numberSink, /// &lt;- The argument type '(int) → dynamic' can't be assigned to the parameter type '(String) → void'.
            decoration: InputDecoration(
                labelText: 'Equipment Number', errorText: snapshot.error),
          );
        },
      );
    }
  </code></pre>
  
  <p>The bloc <code>Future</code> to create the data looks like this. here I'm already getting <code>null</code> <code>value</code> from the numberField</p>
  
  <pre><code>  Future&lt;void&gt; createData(docId) {
  
      final Tracker createTracker = Tracker(
          id: docId,
          comment: _commentController.value,
          exercise: _exerciseController.value,
          number: _numberController.value,
          repetition: _repetitionController.value,
          sets: _setsController.value,
          weight: _weightController.value
      );
  
      print(_commentController.value + _numberController.value.toString());
  
      return trackerDb.createData(docId, createTracker);
    }
  </code></pre>
  
  <p>The <code>stream</code> and <code>Sink</code> looks like this</p>
  
  <pre><code>final _numberController = BehaviorSubject&lt;int&gt;();
  
  Stream&lt;int&gt; get numberStream =&gt; _numberController.stream.transform(validateNumbers);
  Function(int) get numberSink =&gt; _numberController.sink.add;
  
  
  // the vallidation process
  Stream&lt;bool&gt; get submitValid =&gt; Observable.combineLatest6(commentStream, exerciseStream, numberStream, repStream, setsStream, weightStream, (e, m, p, q, r, t,) =&gt; true);
  
  final validateNumbers = StreamTransformer&lt;int, int&gt;.fromHandlers(handleData: (numbers, sink){
    if(numbers &gt; 1) {
      sink.add(numbers);
    } else {
      sink.addError('add at least something man');
    }
  
  });
  
  </code></pre>