React: Chrome ์ž๋™ ์™„์„ฑ์ด ์ œ์–ด ๋œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฐ’์„ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 01์›” 24์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react

๊ธฐ๋Šฅ ์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ๋ณด๊ณ  ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜์„ธ์š”. https://github.com/mozilla-services/react-jsonschema-form/issues/1153 ์—์„œ ์ฒ˜์Œ๋ณด๊ณ  ๋จ

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
Autofill์€ ํ•ด๋‹น ํ•„๋“œ๊ฐ€ React์—์„œ ์ œ์–ด๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ธ ๊ฒฝ์šฐ ํ•„๋“œ์˜ ๊ธฐ์กด ๊ฐ’์„ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

https://jsfiddle.net/epicfaace/9p17e2qx/21/ ์ฐธ์กฐ -์ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด Chrome ์˜ต์…˜์— "์ €์žฅ๋œ ์ฃผ์†Œ"๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

2019-01-24 10 37 23

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์ž๋™ ์™„์„ฑ์€ ๊ธฐ์กด ํ•„๋“œ๋ฅผ ๋ฎ์–ด ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ผ๋ฐ˜ HTML ํ˜•์‹์œผ๋กœ JSFiddle์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://jsfiddle.net/epicfaace/1my3f9n4/6/ ์ฐธ์กฐ

2019-01-24 10 37 02

์–ด๋–ค ๋ฒ„์ „์˜ React์™€ ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ € / OS๊ฐ€์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๊นŒ?
๋ฐ˜์‘ 15.3.2
ํฌ๋กฌ 71.0.3578.98

DOM Breaking Change Bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

"๊ฐ’"์†Œํ’ˆ (์˜ˆ : ์–ด๋–ค ํฌ๋กฌ์ด ํ•„๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ / ์ž๋ฆฌ ํ‘œ์‹œ ์ž๋กœ ๋ณด์ด๋Š”์ง€) ํ•„๋“œ์˜ ์‚ฝ์ž… ๋œ ๊ฐ’๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฆฌ ์•กํŠธ๊ฐ€ ์ƒํƒœ ๋ณ€๊ฒฝ์‹œ ๊ฐ’ ์†Œํ’ˆ์„ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ, ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ๊ธฐ๋ณธ๊ฐ’ / ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํฌ๋กฌ์€์ด ํ•„๋“œ๋ฅผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ํ•„๋“œ๋กœ๋ณด๊ณ  ์ž๋™ ์ฑ„์šฐ๊ธฐ์— ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด. ์ด๋ฆ„ ํ•„๋“œ์— ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค ... react๋Š” ์ž…๋ ฅ ํ•œ ๊ฐ’์œผ๋กœ ๊ฐ’ prop์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ ์ž๋™ ์™„์„ฑ์„ ์‹œ๋„ํ•˜๋ฉด ์ด๋ฆ„ ํ•„๋“œ๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฆ„ ํ•„๋“œ์— ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ํ•œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์ด๋ฆ„ ๊ฐ’ prop์„ ์ž…๋ ฅ ํ•œ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ํŽธ์ง‘ ํ•œ ๋‹ค์Œ ์ด๋ฉ”์ผ ์ž๋™ ์™„์„ฑ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฒˆ์—๋Š” ๋ฎ์–ด ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .. . ๊ฐ’์ด "๊ธฐ๋ณธ๊ฐ’"๊ฐ’๊ณผ ๋™์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ onChange, autocomplete = this.state.value ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํฌ๋กฌ์€ ์–ด๋–ค ์ด์œ ๋กœ์ด ํ•„๋“œ๋ฅผ ์ž๋™ ์™„์„ฑํ•˜์ง€ ์•Š๋„๋ก ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. (autocomplete = off๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž„์˜์˜ ๋ฌธ์ž์—ด์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.) ๋น„์–ด ์žˆ๊ณ  this.state.value๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ์ž๋™ ์ฑ„์šฐ๊ธฐ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ํ•„๋“œ์—์„œ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

"๊ฐ’"์†Œํ’ˆ (์˜ˆ : ์–ด๋–ค ํฌ๋กฌ์ด ํ•„๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ / ์ž๋ฆฌ ํ‘œ์‹œ ์ž๋กœ ๋ณด์ด๋Š”์ง€) ํ•„๋“œ์˜ ์‚ฝ์ž… ๋œ ๊ฐ’๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฆฌ ์•กํŠธ๊ฐ€ ์ƒํƒœ ๋ณ€๊ฒฝ์‹œ ๊ฐ’ ์†Œํ’ˆ์„ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ, ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ๊ธฐ๋ณธ๊ฐ’ / ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํฌ๋กฌ์€์ด ํ•„๋“œ๋ฅผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ํ•„๋“œ๋กœ๋ณด๊ณ  ์ž๋™ ์ฑ„์šฐ๊ธฐ์— ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด. ์ด๋ฆ„ ํ•„๋“œ์— ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค ... react๋Š” ์ž…๋ ฅ ํ•œ ๊ฐ’์œผ๋กœ ๊ฐ’ prop์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ ์ž๋™ ์™„์„ฑ์„ ์‹œ๋„ํ•˜๋ฉด ์ด๋ฆ„ ํ•„๋“œ๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฆ„ ํ•„๋“œ์— ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ํ•œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์ด๋ฆ„ ๊ฐ’ prop์„ ์ž…๋ ฅ ํ•œ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ํŽธ์ง‘ ํ•œ ๋‹ค์Œ ์ด๋ฉ”์ผ ์ž๋™ ์™„์„ฑ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฒˆ์—๋Š” ๋ฎ์–ด ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .. . ๊ฐ’์ด "๊ธฐ๋ณธ๊ฐ’"๊ฐ’๊ณผ ๋™์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ onChange, autocomplete = this.state.value ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํฌ๋กฌ์€ ์–ด๋–ค ์ด์œ ๋กœ์ด ํ•„๋“œ๋ฅผ ์ž๋™ ์™„์„ฑํ•˜์ง€ ์•Š๋„๋ก ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. (autocomplete = off๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž„์˜์˜ ๋ฌธ์ž์—ด์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.) ๋น„์–ด ์žˆ๊ณ  this.state.value๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ์ž๋™ ์ฑ„์šฐ๊ธฐ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ํ•„๋“œ์—์„œ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

^^ ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ onChange ์ œ์•ˆ์„ ์‚ฌ์šฉํ•œ ์ž‘์—… ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. https://jsfiddle.net/epicfaace/9p17e2qx/29/

๋งค์šฐ ํฅ๋ฏธ๋กœ์šด! ์ด๊ฒƒ์€ ์ด์ „์— ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๊ฐ’ ์†์„ฑ / ์†์„ฑ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ถ€์ž‘์šฉ์ž…๋‹ˆ๋‹ค (๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, @ mabeabe28).

value ์†์„ฑ์ด value ์†์„ฑ๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ Chrome์€ ์ž…๋ ฅ์ด "๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€"๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ž๋™ ์™„์„ฑ ์ž‘์—… ์ค‘์— value ์†์„ฑ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ์™„์„ฑ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ์ด ๋ฌธ์„œ๊ฐ€ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ React ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋น„๊ตํ•˜๋Š” ์š”์ ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://codesandbox.io/s/01zr8pll00

value ์†์„ฑ์ด value ์†์„ฑ๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ Chrome์€ ์ž…๋ ฅ์ด "๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€"๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ž๋™ ์™„์„ฑ ์ž‘์—… ์ค‘์— value ์†์„ฑ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ # 13525 ( "๊ฐ’ ์†์„ฑ์— ์ž…๋ ฅ ๊ฐ’ ๋ฐ˜์˜ ์ค‘์ง€")์— ์˜ํ•ด ์ ์–ด๋„ ๋ถ€๋ถ„์ ์œผ๋กœ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰