React: `data-reactroot =" "` потСряно ΠΏΡ€ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ сСрвСра, Ссли элСмСнт Π²Π½ΡƒΡ‚Ρ€ΠΈ `<context.provider>`</context.provider>

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 5 ΠΌΠ°Ρ€. 2019  Β·  5ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: facebook/react

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ошибкС ?

Ошибка.

Каково Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅?

Π’Ρ‹Π·ΠΎΠ² .renderToString() Π½Π° <React.Fragment><div>Hello!</div></React.Fragment> Π΄Π°Π΅Ρ‚ <div data-reactroot="">Hello!</div> .

Однако ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ элСмСнта DOM Π²Π½ΡƒΡ‚Ρ€ΠΈ Β«Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ…Β» элСмСнтов React ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π±Π΅Π· 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) Π½ΠΈΠΆΠ΅:

Π‘ΠΌ. Π’Ρ‹ΡˆΠ΅.

КакоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ оТидаСтся?

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ любой ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ data-reactroot="" div элСмСнта

КакиС вСрсии React ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ / ОБ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° присутствуСт Π²ΠΎ всСх вСрсиях> = 16.7.0, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях.

Π­Ρ‚ΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° - я Π΄ΡƒΠΌΠ°ΡŽ, это повлияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚ΠΎ, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° рСгидратируСтся Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ .render() Π° Π½Π΅ .hydrate() - использованиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ рСкомСндуСтся. Однако использованиС .render() для Ρ€Π΅Π³ΠΈΠ΄Ρ€Π°Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ поддСрТиваСтся.

Π― ΠΌΠΎΠ³Ρƒ внСсти исправлСниС ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΈΠ°Ρ€. Но ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, ΠΈ Ρ‡Ρ‚ΠΎ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ошибка?

Server Rendering Bug

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ок, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Бпасибо Π·Π° быстрый ΠΎΡ‚Π²Π΅Ρ‚. Π― ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡŽ PR, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ смогу - Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² блиТайшиС ΠΏΠ°Ρ€Ρƒ нСдСль.

ВсС 5 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹.

Ок, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Бпасибо Π·Π° быстрый ΠΎΡ‚Π²Π΅Ρ‚. Π― ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡŽ PR, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ смогу - Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² блиТайшиС ΠΏΠ°Ρ€Ρƒ нСдСль.

Π― ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» PR β„– 15023.

@gaearon ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΌΠΎΠ΅ исправлСниС этого Π² PR # 15023?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° react-apollo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Context API, наши сборки Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠ·-Π·Π° этого.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ