title: Provider .read() vs .watch()
body: <p>I just updated my <code>flutter_bloc</code> library to <code>6.1.1</code> in which states:</p>
  <blockquote>
  <p>bloc' is deprecated and shouldn't be used. Use context.read or context.watch instead. Will be removed in v7.0.0.
  Try replacing the use of the deprecated member with the replacement.</p>
  </blockquote>
  <p>Here is a part of code that I did have to change:</p>
  <pre><code>class ContractSubscriptionForm extends StatelessWidget {
    final ContractSubscription contractSubscription;
    const ContractSubscriptionForm(this.contractSubscription, {Key key})
        : super(key: key);
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
        create: (context) =&gt; ContractSubscriptionFormBloc(
          contractSubscription,
          context.read&lt;CoursesGroupBloc&gt;().state.coursesGroupList,  // &lt;---change to .read()
        ),
        child: SubscriptionFormBody(),
      );
    }
  }
  </code></pre>
  <p>The part I did change is this: <code>context.bloc&lt;CoursesGroupBloc&gt;().state.coursesGroupList,</code> to <code>context.read&lt;CoursesGroupBloc&gt;().state.coursesGroupList,</code> and is now working.</p>
  <p>In the documentation for the <code>.read()</code> function I read the following:</p>
  <blockquote>
  <p>This method is the opposite of [watch].
  It will not make widget rebuild when the value changes and cannot be called inside [StatelessWidget.build]/[State.build].
  On the other hand, it can be freely called outside of these methods.</p>
  </blockquote>
  <p>For some reason, this makes no sense, since the upper code is within a <code>build</code> of a StatelessWidget and is working with the <code>.read()</code> function but not with the <code>.watch()</code>.</p>
  <p>Am I missing something?</p>