Unfortunately, the general requirements for having meta tags correctly rendered means that you will first have to have your primary content handy in order to correctly identify what the contents of each meta tag will be. This issue you are seeing is not strictly related to React, but more so in the fact that you have to trade-off between performance and content tagging accuracy.
A primitive solution would involve things like string replacements upon the blob of HTML as a post-processor before being sent to the client (browser in this case), but that will essentially remove the performance gain given to you from a streamed page.
Otherwise, you would need to implement a way to retrieve the basic primary content up front and generate the metatags outside of the streamed response, or before it - so you would make some compromises there.
Another solution is to render to a string, realize the full power of metatag modifications, and then utilize some caching layer like Varnish or simply a key-value store of each page in Redis or Memcached.