React: `data-reactroot =" "`は、 `内の要素の場合にサーバーレンダリングで失われます<context.provider>`</context.provider>

作成日 2019年03月05日  ·  5コメント  ·  ソース: facebook/react

機能をリクエストしバグを報告しますか?

バグ。

現在の動作は何ですか?

呼び出し.renderToString()<React.Fragment><div>Hello!</div></React.Fragment>生成<div data-reactroot="">Hello!</div>

ただし、「非表示」のReact要素内のDOMルート要素の他の多くの組み合わせは、 data-reactroot=""なしでレンダリングされます。

たとえば、次のすべてが<div>Hello!</div>生成します( data-reactroot="" ):

<React.Fragment><React.Fragment><div>Hello!</div></React.Fragment></React.Fragment>

<Context.Provider><div>Hello!</div></Context.Provider>

<Context.Consumer>{() => <div>Hello!</div>}</Context.Consumer>

<React.StrictMode><div>Hello!</div></React.StrictMode>

現在の動作がバグである場合は、再現する手順と、可能であれば問題の最小限のデモを提供してください。 以下のJSFiddle(https://jsfiddle.net/Luktwrdm/)またはCodeSandbox(https://codesandbox.io/s/new)の例へのリンクを貼り付けます。

上記を参照。

期待される動作は何ですか?

上記の例のいずれかが、 div要素にdata-reactroot=""を含むマークアップを生成するはずだと思います。

Reactのどのバージョン、およびどのブラウザ/ OSがこの問題の影響を受けますか?

16.7.0以上のすべてのバージョンに存在する問題。おそらく以前のバージョンにも存在します。

私は、マークアップを使用してクライアント側で再水和される場合にのみ影響を与えると思います-これはマイナーな問題である.render()ではなく、 .hydrate()推奨されて使用を- 。 ただし、 .render()を使用した水分補給は引き続き公式にサポートされています。

修正を実装してPRを行うことができます。 しかし、予想される動作が私が思っているものであり、これが実際にバグであることを誰かが確認できますか?

Server Rendering Bug

最も参考になるコメント

大丈夫です。 迅速な対応ありがとうございます。 できるだけ早くPRを提出します。数週間以内に提出する必要があります。

全てのコメント5件

これはバグのように聞こえます。 修正を歓迎します。

大丈夫です。 迅速な対応ありがとうございます。 できるだけ早くPRを提出します。数週間以内に提出する必要があります。

PR#15023を提出しました。

@gaearon PR#15023でこれに対する私の修正を見る機会がありましたか?

react-apolloがContextAPIを使用しているので、これが原因でビルドが壊れています。

このページは役に立ちましたか?
0 / 5 - 0 評価