ããã¯çŽ æŽãããè²¢ç®ã®æ©äŒã§ãã
ãããªãã¯APIã®èŠ³ç¹ãããããå€ãã®åäœãã¹ããæžãçŽãå¿
èŠããããŸãã
ã€ãŸãã react
ã react-dom
ã react-dom/test-utils
ã react-test-renderer
ãªã©ã®npmãšã³ããªãã€ã³ãã®ã¿ãã€ã³ããŒãã§ãã$ SyntheticEvent
ãªã©ã®å
éšã¢ãžã¥ãŒã«ã¯ã€ã³ããŒãã§ããŸããã ReactDOMComponentTree
ã ãæªããèŠä»¶ã¯ããã¹ãã§ãã§ã«TODOã§ããŒã¯ãããŠãããããèŠéãããšã¯ãããŸããã
ãããæ¯æŽããã«ã¯ïŒ
// TODO: can we express this test with only public API?
ãèŠã€ããŠãã ãããã¹ããã3ã«ã¯ããã€ãã®èããå¿ èŠã§ãã ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããã«ãããªãã¯APIã䜿çšããŠãã¹ããæžãçŽãã以åã®äŸã䜿çšã§ããŸãã äŸãã°ïŒ
äžè¬ã«ããã¹ãããŠããåäœãReactã¢ããªã§å®éã«ã©ã®ããã«åçŸãããããèããŠãããããããã¹ãããå¿ èŠããããŸãã ãŸãã«ãAPIãå ¬éããå¿ èŠãããå ŽåããããŸãããåå¥ã«èª¬æããå¿ èŠããããããé æ ®ãªã説æãéå§ããŠãã ããã ãããªãã¯APIã䜿çšããŠç¹å®ã®ãã¹ããæžãçŽãæ¹æ³ãããããªãå Žåã¯ãããã«ã³ã¡ã³ãããŠãã ããããã¬ã€ã³ã¹ããŒãã³ã°ãè¡ãããšãã§ããŸãã
å€æŽãå¿ èŠãªãã¹ãã®å®å šãªãªã¹ãã¯æ¬¡ã®ãšããã§ãã ãããã®ããã€ãã¯åçŽãªã¯ã³ã©ã€ããŒã®å€æŽã§ãããããããŸãããããã€ãã¯å°ãæžãçŽãã䌎ããããããŸãããããã€ãã¯æåããæžãçŽãå¿ èŠããããããããŸããã äžå¯èœãªããšããããããããŸãããããã®çµè«ã«è³ãç 究ã¯äŸç¶ãšããŠéåžžã«äŸ¡å€ããããç§ãã¡ã¯ãããç¥ããããšæã£ãŠããŸãã
ããããè©ŠããŠãç§ãã¡ã«ç¥ãããŠãã ããïŒ
æŽæ°ïŒãã¹ãŠã®ãã¹ããçŸåšè¡ãããŠããŸãã 誰ããä»äºãçµããæéããªãå Žåã圌ãã¯å°æ¥è§£æŸããããããããŸããã
ReactBrowserEventEmitter-test.js
ïŒ @madeinfreeãååŸãhttpsïŒ//github.com/facebook/react/issues/11299#issuecomment-355188567ãåç
§ïŒgetNodeForCharacterOffset-test.js
ïŒ@accordeiroãæ®åœ±ïŒReactErrorUtils-test.js
ïŒ@reznordãæ®åœ±ïŒBeforeInputEventPlugin-test.js
+ FallbackCompositionState-test.js
ïŒ@GordyDãååŸïŒvalidateDOMNesting-test.js
ïŒ@anushreesubramaniãæ®åœ±ïŒ https://github.com/facebook/react/pull/11742ReactIncrementalPerf-test.js
ïŒ@dphurleyãæ®åœ±ïŒSelectEventPlugin-test.js
ïŒ@skiritsisãæ®åœ±ïŒReactTreeTraversal-test.js
ïŒ@timjacobiãæ®åœ±ïŒSyntheticKeyboardEvent-test.js
+ getEventCharCode-test.js
ïŒ@ aarboleda1ãååŸïŒescapeTextContentForBrowser-test.js
ïŒ@jeremenichelliãæ®åœ±ïŒinputValueTracking-test.js
quoteAttributeValueForBrowser-test.js
ïŒ@jeremenichelliãæ®åœ±ïŒReactDOMComponent-test.js
ïŒ@AudyOdiãæ®åœ±ïŒReactDOMComponentTree-test.js
ïŒ@GordyDãæ®åœ±ïŒReactDOMEventListener-test.js
ïŒ@enapupeãæ®åœ±ïŒReactDOMInput-test.js
ïŒ@SadPandaBearãæ®åœ±ïŒReactDOMServerIntegration-test.js
ïŒ@mineradoãæ®åœ±ïŒsetInnerHTML-test.js
ïŒ@silvestrijonathanãæ®åœ±ïŒgetEventKey-test.js
ïŒ@ mjw56ãæ®åœ±ïŒSyntheticClipboardEvent-test.js
ïŒ@smaniottoãæ®åœ±ïŒSyntheticEvent-test.js
ïŒ@timjacobiãæ®åœ±ïŒSyntheticWheelEvent-test.js
ïŒ@douglasgimliãæ®åœ±ïŒChangeEventPlugin-test.js
ïŒ@ Ethan-Arrowoodãæ®åœ±ïŒEnterLeaveEventPlugin-test.js
ïŒ@accordeiroãæ®åœ±ïŒReactCoroutine-test.js
ïŒ@jstejadaãæ®åœ±ïŒReactFiberHostContext-test.js
ïŒ@adsonplealãæ®åœ±ïŒåããŠã®è²¢ç®è ïŒ
ç¹å®ã®ãã¹ããä¿®æ£ããæ¹æ³ãæ確ã§ã¯ãããŸãããïŒ
ããã€ãã®ãã¹ãããããããå Žåã¯ãã³ã¡ã³ãã«ããªãã®çºèŠãæçš¿ããŠãã ãããããããã°ã次ã«äœããã¹ããã決ããããšãã§ããŸãã
é±æ«ã«ãããèŠãŠãçæçã«åãçµãããšãã§ãããã©ããã確èªããããšãã§ããŸãã
ãŸããšã«ããããšãããããŸãïŒ ç¹å®ã®ãã¹ããéžæããå Žåã¯ãä»ã®èª°ããåããã¹ãã§äœæ¥ãéå§ããªãããã«ãã¹ã¬ããå ã®ãã¡ã€ã«åãã³ã¡ã³ãã«ããŠãã ããã
ç§ã¯ééããªãããã«è²¢ç®ããããšã«éåžžã«èå³ããããŸãã ç§ã¯ä»é±æ«ã調ã¹ãŠããªãã¡ã¯ã¿ãªã³ã°ããæ©äŒãèŠã€ããŸãïŒ
ç§ãèå³ããããŸãð
æåã®æçš¿ã§ãã¹ãã®ãªã¹ããå ¬éããŸããã ã©ããåããããæããŠãã ãããå²ãåœãŠãŸãã
ReactDOMInput-test
ã¯ç§ã«ã¯åé¡ãããŸãã:)
@SadPandaBearäºè§£ããŸããïŒ
ReactErrorUtils-test
ã§äœæ¥ã§ããŸãã ð
setInnerHTML-test.js
ãèŠãŠã¿ãŸããã
getEventCharCode-test.js
ããããŸãã ð
getEventKey-test.js
ã§äœæ¥ã§ããŸãã
escapeTextContentForBrowser-test.js
ãåãããšãã§ããŸãã
ChangeEventPlugin-test.js
ãè©ŠããŠã¿ããã§ã:)
SyntheticEvent-test.js
ãåãããšãã§ããŸã
EnterLeaveEventPlugin-test.js
ã«åãçµã¿ãã
ReactDOMEventListener-test.js
ã«åãçµã¿ãã
BeforeInputEventPlugin-test.js
ãåãããã®ã§ãã
SyntheticKeyboardEvent-test.jsãååŸããããšæããŸãã ããããšãð
inputValueTracking-test.js
ãåããŸããã
SyntheticWheelEvent-test.js
ã«åãçµã¿ãã
åãããšãã§ããŸãïŒ ReactBrowserEventEmitter-test.js
ïŒ
ç§ã¯SelectEventPlugin-test.js
ãåã£ãŠããŸã
ReactDOMComponentTree-test.js
ã«åãçµã¿ãã
ReactTreeTraversal-test.jsã§äœæ¥ããã
ããïŒ ð ReactCoroutine-test.js
ã«åãçµã¿ãã
SyntheticClipboardEvent-test.js
ãåãããšãã§ããŸã
validateDOMNesting-test.js
ã«åãçµã¿ãã
ç§ã¯EventPluginRegistry-test.js
ãåãããšãã§ããŸã
ReactDOMComponent-test.js
ãè©ŠããŠã¿ãã
ããã«ã¡ã¯ïŒ quoteAttributeValueForBrowser-test.js
ãè©ŠããŠã¿ããã§ãïŒ ïŒçïŒ
ããã«ã¡ã¯ïŒ ReactDOMServerIntegration-test.js
ãè©ŠããŠã¿ããã§ãïŒ
ReactIncrementalPerf-test.js
ãåããŸã
getNodeForCharacterOffset-test.jsãå®è¡ããŸã
@burnsbeaver FallbackCompisitionState-test
ãšgetNodeForCharacterOffset-test
$ã®ã©ã¡ãã§ããïŒ ãŸãã1人ã«ã€ã1åã®ãã¹ãããå§ããããšæããŸãã
getNodeForCharacterããé¡ãããŸãã ä»ã®ã³ã¡ã³ããåé€ããŸãããæ··ä¹±ããŠãã¿ãŸããïŒ
FallbackCompositionState-test.js
ãšReactFiberHostContext-test.js
ã¯ãŸã ç¡æã§ãïŒ
FallbackCompisitionStateãååŸããŸãïŒ
ReactFiberHostContext-test.jsãè©Šãããšãã§ããŸã
æŽæ°ïŒãã¹ãŠã®ãã¹ããçŸåšè¡ãããŠããŸãã ãã®å·ã賌èªããŠãã ããïŒ èª°ããä»äºãçµããæéããªãå Žåã圌ãã¯å°æ¥è§£æŸããããããããŸããã ããã€ãã®ãã¹ããå©çšå¯èœã«ãªã£ãããåè©Šè¡ããããã«ã³ã¡ã³ãããŸãã
ãã¹ããåãããã¹ãŠã®äººã«âããããšãïŒ ç¹°ãè¿ãã«ãªããŸããã解決çã¯å¿ ãããæ確ã§ã¯ãªããå Žåã«ãã£ãŠã¯ãReactãœãŒã¹èªäœã«å€æŽãå ããããšãªãåäœãåççã«ãã¹ãããããšããã§ããªãå ŽåããããŸãã è¡ãè©°ãŸã£ããšæããå Žåã¯ãããã«ã³ã¡ã³ãããŠãã ãããèšç»ãç«ãŠãããšããŸãã
@adsonpleal倱æãããŠç³ãèš³ãããŸããã確èªããã°ããã§ãããæ®å¿µãªããã誀ã£ãŠReactFiberHostContext-test
ãä¿®æ£ããŠããŸããŸããã æåã¯æ°ã¥ããªãã£ãã®ã§ãããTODOã¯æ代é
ãã§ãã ããã¯ç§ãèŠãããšãã§ããå¯äžã®ãã¹ãã§ããããã§ã«ä¿®æ£ãããŠããŸãã
@gaearonãããŒã ReactDOMInput-test
ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯å°ãæéãããããŸãããä»é±æ«ã«ãã¹ãŠãçµããããšãé¡ã£ãŠããŸãã
ç§ã¯å°ãçåããããŸãïŒ
inputValueTracking
setUntrackedValue
$ããReactTestUtils.Simulate.?
ã®ãããªãã®ã«ããã®ãã¹ãŠã®åäœã眮ãæããŠã倧äžå€«ã§ããïŒ
ã¡ãªã¿ã«ãããã§ç§ã®PRããã§ãã¯ããŠã inputValueTracking
ãåé€ããããã«ç§ãäœããããã確èªã§ããŸãã ãããã®ãã¹ãã®ããã€ãã¯inputValueTracking
ã®éåžžã«ç¹æ®ãªãã®ã«äŸåããŠããå¯èœæ§ãããããšã¯ç¥ã£ãŠããŸããã代ããã«ReactTestUtils
ãå¹æçã«äœ¿çšã§ãããã©ããçåã«æã£ãŠããŸããã
inputValueTracking
ã®å Žåã @ jquenseã¯ããããæé©ã«è¡ãæ¹æ³ã«ã€ããŠæãå€ãã®ã³ã³ããã¹ããæã£ãŠããå¿
èŠããããŸãã ãã ããæ©èœããéããã¢ãããŒããæ©èœãããã©ããã確èªããŠç¢ºèªã§ããŸãã
ä»ã®äººã«æ³šæããŠãã ãããå€ãããŒãžã§ã³ã®yarnïŒ0.22ïŒãã€ã³ã¹ããŒã«ããŠããŠãããŒã«ã«ã§ãã¹ããå®è¡ããããšããŠãããšããããã¹ãŠãå£ããŠããŸããã ã€ãŒã³ãææ°ïŒ1.2.1ïŒã«ã¢ããã°ã¬ãŒããããšãåé¡ãä¿®æ£ããããã¹ãã¯çŸåšæ£åžžã«å®è¡ãããŠããŸãã
@sadpandabearãã¹ããã¡ã€ã«ã«åãã¢ãžã¥ãŒã«ãããã®ã§ãããã«å®è£ ã確èªããŸã
@gaearon setInnerHTML
ãã¹ãã®å Žåããã¹ãã¹ã€ãŒããæå³ããªãããã«setInnerHTML
ã®ååšã«äŸåããŠããããã«æããŸãã
æ¢åã®é¢æ°ã眮ãæããããã«ããã€ãã®ãã¹ããæžãããšãã§ããŸããããã¹ãã¹ã€ãŒãã¯ã setInnerHTML
ã«åºæã®ãã®ã§ã¯ãªããå
éšhtmlã®èšå®ã«æ²¿ã£ããã®ã«ãªããŸãã ãã¹ãã¹ã€ãŒãã®ååä»ãã«å°ããã ãã£ãŠãããšæããŸãã
ç·šéïŒç§ãééã£ãŠããªãéã...SVGã«ã¯innerHTML
ããããã£ããããŸãã ãã®ãã¡ã€ã«ã®ãã¹ãã®2çªç®ã®ãã£ã³ã¯ãå¿
èŠãã©ããããããããŸããã
@silvestrijonathanãããã®ãã¹ããå®éã«æ€èšŒããããšããŠããã®ã¯ã dangerouslySetInnerHTML
ãReactã§æåŸ
ã©ããã«æ©èœããããšã ãšæããŸãã ãããã£ãŠãReactDOMã䜿çšããããã«ãããã®ãã¹ããå€æŽããåãã³ã³ãã³ããdangerouslySetInnerHTML
ã§ã¬ã³ããªã³ã°ããå Žåã¯ãããã§ååã§ãã ãã¹ãã®ååãdangerouslySetInnerHTML-test
ã«å€æŽããæ¹ãé©åã ãšæãããå Žåã¯ãåé¡ãããŸããã
ãã¹ããã¡ã€ã«ã§æ°æééãã åŸãïŒç§ã®ãããªïŒåå¿è
ã«åŒ·ãææ¡ããããŸããã¯ãªãŒã³ãªenvïŒãã¡ã€ã«ïŒã§ãã¹ããéå§ããŠãã ããã
æ¢åã®ãã¡ã€ã«ãç·šéããŠããŠãããã€ãã®å
éšé¢æ°ãã¢ãã¯ããã®ã§ãããã€ãã®ReactTestUtils
é¢æ°ãå£ããŠããŸãã!! ç©äºãæå³ãããšããã«æ©èœããªãã£ãçç±ãç解ããã®ã«å°ãæéãããããŸããã
@gaearonã€ãã³ãã®ã·ãã¥ã¬ãŒã·ã§ã³ãå«ãã ReactTestUtils
ã¯ãã©ã€ããŒãAPIãšèŠãªãå¿
èŠãããããšãæ確ã«ããå¿
èŠããããšæããŸãã ããã¯éæ¥çã«å
éšAPIã«å°éããããããã以å€ã®å Žåã«ã©ã®ããã«æ©èœããããé©åã«ãã¹ãããããšã¯ã§ããŸããã ããšãã°ããããã®ããã¯ãå
¬éããã«ã³ã³ãã€ã«æžã¿ããã±ãŒãžããã¹ãããæ©èœã劚ããããæ°ããéåæã€ãã³ãã·ã¹ãã ããã¹ãã§ããªããªããŸãã
@dphurley ãããªããReactIncrementalPerf-test
ã«åãçµãã§ããããšã«æ°ã¥ããŸããã ReactCoroutine
ã䜿çšãããã¹ãã¹ã€ãŒãã«ãåãçµãã§ããã®ã§ããã®PRã«ã€ããŠãç¥ããããŸãïŒïŒ11338ã
ãã§ã«PRãæåºããŠãããã©ããã¯ããããŸããããæåºããŠããªãå Žåã¯ãïŒ11338ïŒåãå
¥ããããŠããå ŽåïŒã«åºã¥ããŠäœæããããšããå§ãããŸãã
@gaearonã¢ããã€ã¹ããããšãããããŸãã React-DOM
ãšdangerouslySetInnerHTML
ããã¹ãã«å©çšããããšãèããã®ã§ããã®ããã«ããŸãã
ã¯ãããã®å Žåã¯ãããããã¹ãã®ååããã®ååã«å€æŽããŸãã ç¿æ¥ããããã§ç§ã®PRãæ¢ããŠãã ããã
æåã«çµ±åãããPRããããŸãïŒ
ãããèŠãŠãã ããïŒ https ïŒ//github.com/facebook/react/pull/11309
ã€ãã³ãã«é¢é£ããäœãã«åãçµãã§ããå Žåã¯ã https ïŒ//github.com/facebook/react/pull/11309ã®ãã£ã¹ã«ãã·ã§ã³ãšæ¬¡ã®ã¬ãã¥ãŒã®äž¡æ¹ãèªãããšããå§ãããŸãã
https://github.com/facebook/react/pull/11316
https://github.com/facebook/react/pull/11317
https://github.com/facebook/react/pull/11327
https://github.com/facebook/react/pull/11332
ããã€ãã®å ±éã®ããŒããããããããã®è°è«ã䜿çšããŠä»ã®PRãæ£ããæ¹åã«å°ãããšã䟡å€ããããããããŸããã
åç §ããã®ã«æé©ãªã³ã³ã-ããããšãïŒ
ä»äºã¯å°ãå¿ãããªããŸããããä»é±æ«ã¯ãã¹ãã®ããã«PRãéãããšãã§ãããšæããŸãã
ç§ã¯ãŸã ç§ãæŸã£ããã¹ãã調ã¹ãŠããŸããã ä»ã®ããšã«å¿ãããªããŸããã ããšæ°æ¥ã§PRãäžããŠã¿ãŸããããã€ãè²·ããŸããïŒ
ããã§ããã確ãã«ïŒ
ç§ã¯åãåé¡ãæ±ããŠããŸãã
å¥ã®PRãçµ±åãããŸããïŒ https://github.com/facebook/react/pull/11316
ãã2ã€ããŠã³ã https://github.com/facebook/react/pull/11317 https://github.com/facebook/react/pull/11385
ç§ããã¹ãã®1ã€ã«ã©ã®ããã«ã¢ãããŒããããã«ã€ããŠã®å°ããªåæãæžããŸããã https://github.com/facebook/react/pull/11385#issuecomment -341934588
ç§ãç¥ãéãããããã¯ãã¹ãŠåãããŠããŸããããããã°ããã«æçš¿ããŠãã ããã
ç¹ã«SyntheticEvent
ãæ±ã2ã€ã®PRãããŒãžããŸããã é¢é£ãããã¹ããåããå Žåã¯ããããããã§ãã¯ããŠãã¹ã¿ã€ã«ãšã¢ãããŒããäžèŽãããŠã¿ãŠãã ããïŒ https ://github.com/facebook/react/pull/11365ããã³https://github.com/facebook/react/issues/ 11299
@gaearon EventPluginRegistry-test.js
ã®å Žåããããªãã¯APIã䜿çšããŠãã¹ããã©ã®ããã«æžãçŽãå¿
èŠããããŸããïŒReactDom.js->ReactDOMClientInjection.jsã«ããã©ã«ãã®ãã©ã°ã€ã³ãæ¿å
¥ããŠããããšãããããŸã
{{
SimpleEventPluginã
EnterLeaveEventPluginã
ChangeEventPluginã
SelectEventPluginã
BeforeInputEventPluginã
}
ã§ã¯ããã¹ãã¢ãã¯ãã©ã°ã€ã³ãã©ã®çšåºŠæ£ç¢ºã«æ¿å
¥ããŠEventPluginRegistry
æ©èœããã¹ãã§ããã
ã«ã¹ã¿ã ãã©ã°ã€ã³ãæ€çŽ¢ãã react-tap-event-pluginãèŠã€ããŠãã«ã¹ã¿ã ãã©ã°ã€ã³ãã©ã®ããã«æ¿å
¥ãããŠãããã確èªããŸããã
ããããã©ã°ã€ã³ãæ¿å
¥ããå¯äžã®æ¹æ³ã§ãã
require('react-dom').__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.EventPluginHub.injection.injectEventPluginsByName({
'TapEventPlugin': require('./TapEventPlugin.js')(shouldRejectClick)
});
ReactTreeTraversal-test.js
ã§é ããããããªãã®ã§ã¯ãªãããšå¿é
ããŠããŸã
ä»ã®èª°ãããããè©ŠããŠã¿ããå Žåã¯ãé æ
®ãªãããããŠãã ããã
@aqumus
EventPluginRegistry
ã¯æ³šæãå¿
èŠã§ãã æåã®ã¹ãããã¯ãå®éã«ã©ãã§äœ¿çšãããŠããããææ¡ããããšã ãšæããŸãã 確ãã«ãã¿ããã€ãã³ããã©ã°ã€ã³ã¯ãç§ãã¡ããŸã ãµããŒãã«åãçµãã§ããå¯äžã®ãã©ã°ã€ã³ã§ãã 䟿å©ãªããšã«ãã¬ãã«æ£ãããããŸãã ããã§ããããç¹ã«æ©èœãããã¹ããè¿œå ã§ããã§ããããïŒ
RNãEventPluginRegistry
ã䜿çšããŠããå¯èœæ§ããããŸãã RNã€ãã³ããæ©èœããããšã確èªãããã¹ãã¯ãããŸããïŒ ããããªãã EventPluginRegistry
ã®ããŸããŸãªéšåãã³ã¡ã³ãã¢ãŠãããŠããã¹ãã倱æãããã©ããã確èªãã䟡å€ããããŸãã åãã³ãŒããããããã®ã³ãŒããã¹ã«ã¹ãã¬ã¹ãäžããä»ã®ãã¹ãã§ãã§ã«ã«ããŒãããŠããå Žåã¯ããã©ã€ããŒãAPIãã¹ããåé€ã§ããŸãã ããã¯æå³ããããŸããïŒ
@gdevincenziããã§ãããå²ãåœãŠãåé€ããŸãã
ãŸããä»é±ã¯äžåšã«ãªããŸããããããç¶ããªãã§ãã ããã æ¥é±ãããã«ããã€ãã®æåºãããPRãããŒãžãããããšãæãã§ããŸãã
ç§ã¯ReactTreeTraversal-test.js
ãåãããšãã§ããŸã-ããã¯ãªãã¿ã®ãªãAPIã§ããããããåŠã¶ã®ã¯è¯ãæ©äŒã®ããã§ãã ã¢ããã€ã¹ãããã@gdevincenzi
ããªãè€éãªãã®ãå®æãããŠããã@gordydã«ããã§ãšãããããŸãïŒ httpsïŒ//github.com/facebook/react/pull/11383ã
ããã¯ãæ¬è³ªçã«åãããšããã¹ãããŠãããšãã«ãã³ãŒããååŸã§ã©ã®ããã«ç°ãªããã瀺ãè¯ãäŸã§ãã ãããŠãåç §ãæ€çŽ¢ããgitã®å±¥æŽã調ã¹ãããŸããŸãªè¡ãã³ã¡ã³ãåããããšã§ãã³ãŒããäœãããŠããã®ããç解ããæ¹æ³ã説æããŸãã
以äžã®ãŠãŒã¶ãŒããã®PRã¯ãŸã åããŠããŸããã
@ email2vimalraj
@andrevargas
@tranotheron
@minerado
@ sw-yx
@ king0120
@ aarboleda1
@danilowoz
@ dms1lva
@morajabi
@dphurley
@reznord
@aqumus
ããã«åãçµã¿å§ãããã©ãã確èªããŠããã ããŸããïŒ åŸ ã¡è¡åã®äžã§å©ããããšæã£ãŠãã人ãããããããã®ã§ãæéããªãå Žåã¯ãä»ã®äººã«ããã«åãçµãæ©äŒãäžããã®ã¯çŽ æŽãããããšã§ãã
@andrevargashttps ://github.com/facebook/react/pull/11331ã§ããªãã®è°è«ã«æ°ã¥ããŸããã ãããã®å€æŽãããã§çµ±äžããŠããããšã¯çã«ããªã£ãŠãããšæããŸãã
ãã®ãã¥ãŒã«ç§ãè¿œå ããŠãã ãã@gaearon
@gaearonã¯ãããã®éãã§ãã 確èªã®ããã«ã @ jeremenichelliã¯ïŒ11331ã®quoteAttributeValueForBrowser-test.js
ã«åãçµãã§ãããç§ã¯ãããèªèããŠããŸãã 圌ã®ãŠãŒã¶ãŒåãšPRã®ãªã³ã¯ã§ãã®ã¹ã¬ãããæŽæ°ã§ãããšæããŸãã
@gaearonã®ãã¥ãŒã«ãç§ãè¿œå ããŠãã ãã
@gaearonç§ã¯ããã«åãçµã¿å§ããŸããã ä»é±äžã«ç§ã®èª¿æ»çµæãŸãã¯PRãæçš¿ããããšãèšç»ããŠããŸãã
@gaearonSyntheticKeyboardEvent.jsã®äœæ¥ãéå§ããŸããã ä»é±æ«ã«PRãè¡ãäºå®ã§ãã
@gaearonæåã«å²ãåœãŠããã人ããããã«åãçµãã®ã«å¿ èŠãªæéããªãå Žåã«åããŠãç§ã¯ãã¹ãã®ãããããåãããšãã§ããŸããã
@gaearoné·ãé
ãã§ç³ãèš³ãããŸããããä»WIPPRãäœæããŠããŸãã æŽæ°ïŒèª°ãããã©ã€ããŒãAPIã«äŸåããªãããã«äœããã¹ãããç°¡åã«èª¬æã§ããŸããïŒ ãŸãã top<EventName>
ã«ã€ããŠãããããŸããã ããããšãã
https://github.com/facebook/react/blob/92b7b172cce9958b846844f0b46fd7bbd8c5140d/packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js> extract
é¢æ°
@gaearoné·ãé 延ã§ããããªããð ã ç§ã¯ä»æ¥ããã«åãçµãã§ãããããã«ã€ããŠçåãããå Žåã¯ããªãã«pingããŸãã
@morajabiããã«åãçµãããã®1ã€ã®æœåšçãªæ¹æ³
SelectEventPlugin
ãèŠãŠãããããŠãŒã¶ãŒã«æäŸããæ©èœãç解ããŸãSelectEventPlugin
ã®èªã¿èŸŒã¿ãç¡å¹ã«ããŠïŒã³ã¡ã³ãã¢ãŠãïŒãäœãå£ããŠãããã確èªããŸãïŒäœããå£ããŠããããšã確èªããŠãã ããïŒSelectEventPlugin
ã®èªã¿èŸŒã¿ãå床æå¹ã«ããŠããã¹ãã«åæ Œããããšã確èªããŸã@gaearoné
延ã®ãè©«ã³
ããªãã®ææ¡ã«åºã¥ããŠãç§ã¯EventPluginRegistry.js
ã®ããã€ãã®éšåã«ã³ã¡ã³ãããŠã¿ãŸããããå€ãã®ãã¹ãã±ãŒã¹ã倱æããŠããããšãããããŸããïŒ SyntheticWheelEvent
ã ReactDOMComponentTree
ã SyntheticClipboardEvent
ã SyntheticWheelEvent
ã inputValueTracking
ã SimpleEventPlugin
ã ChangeEventPlugin
ã ReactDOMComponentTree
ãªã©ïŒã
ReactBrowserEventEmitter.js
ãEventPluginRegistry.js
ã§å®çŸ©ãããŠããregistrationNameDependencies
ã䜿çšããŠããããšãäž»ãªçç±ã ãšæããŸã
ã³ã¡ã³ãã¢ãŠããããšãã§ãã
倱æãããã¹ãã±ãŒã¹ã¯ãããŸããã§ããïŒ EventPluginRegistry
ãã¹ãã®ã¿ã倱æããŸããïŒ
ããã«åºã¥ããŠã EventPluginRegistry
ã¯ãã§ã«ä»ã®ãã¹ãã¹ã€ãŒãã§ã«ããŒãããŠãããšæããŸãã
ãããäœãæå³ããã®ãåãããŸããã§ãã
ãããªãã¯APIã䜿çšããŠEventPluginRegistry
ãæžãæããããã«åãçµãããšãã§ããä»ã®ææ¡ã¯ãããŸããïŒ
ä»ã®äººã«ãšã£ãŠã¯ïŒããã以åã«æŸéããããã©ããã¯ããããŸãããïŒã @kentcdoddsãããªããããã£ã¹ã-BenAlpertã«ããreactã€ãã³ãã³ãŒãã®ãŠã©ãŒã¯ã¹ã«ãŒãéåžžã«äŸ¿å©ã§ããããšãããããŸããã
ç³ãèš³ãããŸããã@gaearonããããšããŸããããä»ã¯ãããçµããæéããããŸãã
ãããã£ãŠãä»ã®èª°ããç§ã®åé¡ãååŸãããå Žåã¯ããæ°è»œã«:)
@danilowoz @gaearonãããããã°ãBeforeInputEventPlugin-test.jsã䜿çšã§ããŸãã
@timjacobi ReactDOMComponentTree.getInstanceFromNode
ã®ä»£ããã¯äœã§ããïŒ
ãŸããã©ãã§ç¡å¹ã«ããã°ããã§ããïŒ
SelectEventPluginã®èªã¿èŸŒã¿ãç¡å¹ã«ãïŒã³ã¡ã³ãã¢ãŠãïŒãäœãå£ããŠãããã確èªããŸãïŒäœããå£ããŠããããšã確èªããŸãïŒ
@morajabiããªããããã«æ£ããã¬ãã«ã§åãçµãã§ãããã©ããã¯ããããŸããã ãããŸã§ã«æã£ãŠãããã®ã§WIPPRãéããŠããããŸããïŒ ãã®ã¹ã¬ãããããŸãæ±æããããããŸããã
@timjacobiäœãæ°ããããšãã³ãããããŠããªããšãã¯ã§ããŸããã 誰ããSelectEventPlugin-test
ãåãããšãã§ããã°ãç§ã¯æè¿ããªãå¿ããã®ã§ããããªããã
ä»ã®å€æŽãšäžç·ã«ã«ããŒããã®ã§ã ReactDOMServerIntegration-test
ïŒcc @mineradoïŒã¯ããå¿
èŠãªãããã§ãã
@aqumusåæã«åºã¥ããŠããã®ãªã¹ãããEventPluginRegistry-test.js
ãåé€ããŸãã ããã¯ãããã®ç¹å®ã®å
éšã®åäœãã¹ããšããŠä¿æãããšæããŸãããå®éã®ããžãã¯ãä»ã®ãã¹ãã§ã«ããŒãããŠããããšãç¥ã£ãŠãããšããã§ãããã
@ king0120 getEventCharCode-test
ã@ aarboleda1ã«åå²ãåœãŠããŸãã圌ã¯ã httpsïŒ//github.com/facebook/react/pull/11631ã§éåžžã«é¢é£æ§ã®é«ããã¹ãã«åãçµãã§ãããããäžç·ã«å®è¡ããæ¹ãç°¡åãªå ŽåããããŸãã
@morajabi @gaearonSelectEventPlugin -test.jsãèŠãããšãã§ããŸãã
@ email2vimalrajåèãŸã§ã«ã inputValueTracking-test
ãæžãçŽããŸããã
çŸåšããããã®ãã¹ãã«ã¯ææè ãããŸããã
getNodeForCharacterOffset-test.js
ïŒ3/5ïŒReactBrowserEventEmitter-test.js
ïŒ5/5ïŒBeforeInputEventPlugin-test.js
+ FallbackCompositionState-test.js
ïŒ5/5ãçµã¿åãããå¿
èŠããããŸãïŒ@GordyDãæ®åœ±SelectEventPlugin-test
ïŒ2/5ïŒReactTreeTraversal-test.js
ïŒ4/5ïŒç§ã¯åœŒãã®é£ããã®èªèã«ãã£ãŠããããåé¡ããŸããã
@timjacobi @kwnccc @skiritsisã®ãã¥ãŒããããŸãã®ã§ããããã®ãã¹ãã®ãããããåéšãããå Žåã¯ã3人ã§ãç¥ãããã ããïŒã©ããæå®ããŠãã ããïŒã åæ Œããããšãã§ããŸããä»ã®äººã«è©ŠããŠããããŸãã
ãããã¯ããªãè€éã«ãªã£ãŠãããããåå¿è åãã§ã¯ãªãããšã«æ³šæããŠãã ããã ãããã¯æ©æ¢°çãªä»£æ¿åã§ã¯ãããŸããã ãã¹ããäœãæ€èšŒããããšããŠããã®ããç解ããŠãããåçã®ãããªãã¯APIãã¹ããèãåºãå¿ èŠããããŸãïŒããã¯éåžžã«ç°ãªã£ãŠèŠããå ŽåããããŸãïŒã
ããããååŸããã«ã¯ã @ GordyDãhttps://github.com/facebook/react/pull/11383ã§è¡ã£ãã®ãšåæ§ã«ãèªåã§ç©äºãå¿«é©ã«èª¿æ»ã§ããå¿ èŠããããŸãã å®éã @ GordyDããããã®ãããããåãåãããå Žåã¯ãåãã§åœŒã«1ã€ãããŸãã
@skiritsisèå³ããã£ãã®ã§ã SelectEventPlugin-test
ãåå²ãåœãŠããŸãã
ReactBrowerEventEmitter-test.jsã«åãçµã¿ããã§ãðª
@gaearon ïŒãããããããšããæééãã«å¿çããªãã£ãããšããè©«ã³ããŸãã ä»ã®ä»äºã§å¿ãããªããŸããã ç§ã®ç解ã®ããã«ããªããã©ã®ããã«æžãçŽãããã調ã¹ãŸãã
ReactTreeTraversal-test.internal.js
ãèŠãŠã¿ãŸããã
@madeinfree @kwncccã¯ãã§ã«ãã¥ãŒã«å ¥ã£ãŠããã®ã§ãæåã«è¿ä¿¡ããããã«æ°æ¥äžããŸãããã 圌ãèå³ãæã£ãŠããªãå Žåã¯ãåŸã§å²ãåœãŠãŸãã
@gaearon OKïŒ äºè§£ããŸãããããããšãããããŸãã
@gaearonä»ã«ãã€ã«ãŒãããªãå Žåã¯ã BeforeInputEventPlugin
+ FallbackCompositionState
ã®çµã¿åãããèŠãŠãããŸãã
@GordyDã«æè¬ããŸãïŒ
ã¡ãªã¿ã«ããã®ã³ãŒããéåžžã©ã®ããã«ãªãããç解ããããã«ãå€æãããã€ãã³ããã¹ããããã«ããã€ããããŸãïŒhttpsïŒ //github.com/facebook/react/pull/11631 httpsïŒ//githubã com / facebook / react / pull / 11525
@gaearon誰ã欲ããããªããã°ã ReactBrowserEventEmitter-test.js
ãåãã§åãåããŸãã
@madeinfree
ãŸã ReactBrowerEventEmitter
ã«èå³ããããŸããïŒ ãããããªãããããåããç§ãã¡ãææ°ã®ç¶æ
ã«ä¿ã£ãŠãã ããïŒ
@gaearon OKïŒ æ®ãããã§ãã
äºè§£ããŸããã
æ®ãã®getNodeForCharacterOffset-test
ãåãåããã人ã¯ããŸããïŒ
ç§ã¯ãããæäŒãããšãã§ããŸãïŒ getNodeForCharacterOffset-test
ïŒ:)
@gaearonæã£ãããã«ã ReactIncrementalPerf-test.js
ã«é£ã³èŸŒãæéãèŠã€ãããŸããã§ããã é·ãéãè©«ã³ç³ãäžããŸããã誰ãããããæãã§ãããªããããã¯æã«å
¥ããããšãã§ããŸãïŒ
@accordeiroäºè§£ããŸããïŒ
@gaearonæ¬åœã«ç³ãèš³ãããŸããããéç¥ãåãåããŸããã§ããã ãŸã 察åŠãã¹ããã¹ããããå Žåã¯ãç§ã«ç¥ãããŠãã ããã ç°¡åã«å§ãããããã®ãæ®ã£ãŠãããšããã®ã§ããã
@kwnccc ReactIncrementalPerf-test.js
ã調ã¹ããã§ããïŒ
ReactIncrementalPerf-test.js
ã調ã¹ãŠãããã§ããïŒ ãŸãã¯ãå¿
èŠã«å¿ããŠã @kwncccããã¹ããäœæããã®ãæäŒãããšãã§ããŸã
ReactIncrementalPerf.js
ãšããååã®ãã¡ã€ã«ã衚瀺ãããªãã®ã§ã ReactPortal.js
ã®ãã¹ããäœæããå¿
èŠããããŸããïŒ
ReactIncrementalPerf-test.js
ã®åé¡ãå°ãã§ãç解ããŠããå ŽåïŒééã£ãŠããå Žåã¯ä¿®æ£ããŠãã ããïŒãReactPortal.createPortalïŒ...ïŒããReactDOMãšreact-domã®ãããªãããªãã¯APIã«åãæ¿ããå¿
èŠãããããšãæå³ããŸã.createPortalïŒ...ïŒïŒ @gaearon
@gaearon ReactIncrementalPerf-test.js
ãè©ŠããŠã¿ããã§ãã @ abiduzz420ããã§ãã¯ã¢ãŠããéå§ããã®ã§ãå¿
èŠã«å¿ããŠããŒã ãçµãããšãã§ããŸãã
ããã確ãã«@kwncccç§ã¯ããªããšäžç·ã«ä»äºãã§ããŠããããã§ãã ããªãã¯ç§ã®åã«åã«äžŠãã§ããã®ã§ãããªãã®ãã¹ãŠã§ãïŒ
@kwnccc yarn test
ã§1ã€ã®ãã¹ããšã©ãŒãçºçãã$ïŒ yarn flow
ãå®è¡ãããšãããŒãšã©ãŒãçºçããŸãã ã³ãŒãããã©ãŒã¯ããããªããžããªã«ããã·ã¥ããŸãïŒ https ïŒ//github.com/abiduzz420/react
FAIL packages\react-reconciler\src\__tests__\ReactIncrementalPerf-test.internal.js (11.191s)
â ReactDebugFiberPerf ⺠supports portals
Invariant Violation: Target container is not a DOM element.
at invariant (node_modules/fbjs/lib/invariant.js:42:15)
at Object.createPortal (packages/react-dom/src/client/ReactDOM.js:1112:70)
at Object.<anonymous> (packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js:510:116)
$ yarn flow
yarn run v1.3.2
$ node ./scripts/tasks/flow.js
Error: packages/react-reconciler/src/ReactFiberHostContext.js:87
87: const nextContext = getChildHostContext(context, fiber.type, rootInstance);
^^^^^^^ NoContextT. This type is incompatible with the expected param type of
v---------------------------------------------
31: export default function<T, P, I, TI, HI, PI, C, CC, CX, PL>(
32: config: HostConfig<T, P, I, TI, HI, PI, C, CC, CX, PL>,
33: ): HostContext<C, CX> {
--------------------^ some incompatible instantiation of `CX`
Error: packages/react-reconciler/src/ReactFiberHostContext.js:87
87: const nextContext = getChildHostContext(context, fiber.type, rootInstance);
^^^^^^^^^^^^ NoContextT. This type is incompatible with the expected param type of
v---------------------------------------------
31: export default function<T, P, I, TI, HI, PI, C, CC, CX, PL>(
32: config: HostConfig<T, P, I, TI, HI, PI, C, CC, CX, PL>,
33: ): HostContext<C, CX> {
--------------------^ some incompatible instantiation of `C`
Found 2 errors
Flow failed
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
@ abiduzz420ãããŒã®åé¡ã¯ãWindowsã®æ¢ç¥ã®åé¡ã§ãã ããã¯ç¡é¢ä¿ã§ãïŒãããããªããããèµ·ããã®ããç解ããå¿ èŠããããŸãïŒã https://github.com/facebook/react/issues/11703ãåç §ããŠãã ããã
@kwnccc ReactIncrementalPerf-test
ã«é¢ããŠã¯ãã¯ããããã«ã¯ããã€ãã®èæ
®ãå¿
èŠã§ãã ãããããã®æç¹ã§ãäžæçã«ReactPortal
ãshared
ã«ç§»åããã®ãæåã ãšæããŸãã 次ã«ã ReactNoop
ã«ç¬èªã®createPortal()
ã¡ãœãããæäŸãããŸãïŒ ReactDOM
ã®ããã«ïŒã
ãã1ã€ããŠã³ïŒ https://github.com/facebook/react/issues/11299
@gaearon ReactPortalãå
±æãã£ã¬ã¯ããªã«ç§»åããŸãããããã¹ãŠã®ãã¹ãã«åæ ŒããŠããŸãã ReactNoop
$ã«å¯ŸããŠèªåã®ã¡ãœããcreatePortal()
ãå®è£
ããã«ã¯ãå°ãæ¯æŽãå¿
èŠã§ãã createPortal()
ãReactDOM
ReactPortal.createPortal(children,container,null,key)
ãè¿ããŸãã
ç§ã¯ãããã®è¡ã«ã€ããŠèããŠããŸãïŒ
function createPortal( children: ReactNodeList, container: Container, key: ?string = null) {
invariant(
// TODO: Need to figure out this part of the code
);
return ReactPortal.createPortal(children, container, null, key);
}
ç§ãæ£ãããã£ãŠãããã©ããæããŠãã ããã
@gaearonç§ã®ã³ãŒãã¯ãŸã ä»æåã§ãã ããããç§ã¯èªåãæ£ããæ¹åã«é²ãã§ãããã©ãããå確èªãããã£ãã®ã§ãã ç§ã®ã³ãŒãããã£ãšèŠãŠãããã€ãã®çåãæããã«ããŠããã ããã°ãæ¬åœã«å©ãããŸãã
@ abiduzz420ã¯ããããã¯æ£ããã§ãã
@anushreesubramani
ç§ãåã£ãã¢ãããŒãã¯æ£ããã§ããïŒ
äžè¬çã«ã¯ããã§ãããããã§ã®éè€ã¯é¿ããããšæããŸãã çæ³çã«ã¯ãäžé£ã®
expect(isTagStackValid(['a', 'a'])).toBe(false);
äžé£ã®
expectInvalidNestingWarning(true, ['a', 'a']);
ããã§ã expectInvalidNestingWarning
ã¯ãã³ã³ããŒãã³ããçæãããããã¬ã³ããªã³ã°ãããšèŠåãçæãããããšãè¡šæããã«ã¹ã¿ã é¢æ°ã§ãã
ãããã®ç¹å¥ãªãã©ãŒãããã¿ã°ã䜿çšããŠã³ã³ããŒãã³ããåçã«çæããæ¹æ³ããããã©ããã¯ããããŸããã ãããéæããããã®å¹ççãªæ¹æ³ã«ã€ããŠãããã€ãã®æéãæããŠãã ããã
ã¯ããç§ã¯æ¬¡ã®ãããªããšãèããŠããŸãïŒ
function expectInvalidNestingWarning(shouldWarn, tags) {
let element = null;
tags = [...tags];
while (tags.length) {
element = React.createElement(tags.pop(), null, element);
}
const container = document.createElement('div');
ReactDOM.render(element, container);
// assert either a warning or lack of one based on shouldWarn
}
é åã調ã¹ãŠæåŸã®é ç®ãååŸããçŸåšã®èŠçŽ ã察å¿ããã¿ã°ãæã€èŠªã«ã©ããããŸãã ãã®ããã«ããŠãæçµçã«å¯Ÿå¿ããããªãŒã«ãªããŸãã ç§ã¯äœãééã£ãããšãæžãããããããŸãããããããäžè¬çãªèãã§ãã
ããªãã¯ãããã次ã®ãããªãã®ã眮ããããšæãã§ããã
jest.resetModules();
React = require('react');
ReactDOM = require('react-dom');
ã¬ã³ããªã³ã°ã®çŽåã«ãã®é¢æ°ã§ãããããªããšãèŠåãéè€æé€ããã確å®ã«ãã¹ãã§ããªãããã§ãã
ã¡ãœããisTagValidInContextïŒïŒã¯ãã¹ããã¡ã€ã«ä»¥å€ã§ã¯äœ¿çšãããŠããªãããããããªãã¯APIã䜿çšããŠãanytagnocontextããã¹ãã®ãnocontextãéšåããã¹ãããæ¹æ³ãããããŸããã
責任ãèŠããšã httpsïŒ//github.com/facebook/react/commit/76bb96ef21b7c665e1b51b6bb90e64ec40c0f16aã«è¿œå ãããŠããããã®æç¹ã§ãã¹ãå€ã§ãåŒã³åºãããŠããŸããã ããããå°æ¥ã®ããæç¹ã§ãããã¯ãã¯ã䜿çšãããŸããã§ããã ãã¹ãã§ã¯ããµãŒããŒã®ã¬ã³ããªã³ã°ã«ã€ããŠèšåããŠããŸãã
ãã ãããã®é¢æ°ã¯ãµãŒããŒã¬ã³ããªã³ã°ã§ã䜿çšãããªããªããŸããã
ãã®ã³ã¡ã³ããããç¥å
ãããããªããšãã«èŠåããªãããã«ããããšãç®æšã§ããããšãããããŸããã ãã ãã null
ãancestorInfo
ãšããŠ$ validateDOMNesting
ã«æž¡ãã³ãŒããã¹ãèŠã€ãããŸããã ãããã£ãŠãããããçŸåšã®ããŒãžã§ã³ã®ç¥å
ãåžžã«ç¥ã£ãŠããŸãã ãããã£ãŠããã®ãã¹ããå®å
šã«åé€ããŠãå®å
šã ãšæããŸãã
@gaearon ReactNoop.js
createPortal()
ã®ã¡ãœãããäœæããŸããããã®åã«ãææ¡ããããã«ReactPortal.js
ãã¡ã€ã«ãå
±æãã£ã¬ã¯ããªã«ç§»åããŸããã ç§ã®ã³ãŒãã確èªããŠãã ãããå€æŽãè¿œå ãå¿
èŠãªå Žåã¯ããããå®è¡ããŸãã
PRãéã£ãŠããããŸããïŒ ã¬ãã¥ãŒã§è°è«ããæ¹ãç°¡åã§ãã
@ abiduzz420ããªãã¯çŽ æŽãããä»äºãããããã§ããç³ãèš³ãããŸããããä»æ¥ãŸã§ãããå§ããæéããããŸããã§ããïŒ ãã¹ããå®äºã§ããŠæ¬åœã«è¯ãã£ãã§ãïŒ ðð
@gaearon次ã¯ç§ãçŽ æŽãããå¯çšæ§ãæã£ãŠããããšã確èªããŸã
@gaearonã¯ã€ãã¯ã¢ããããŒãïŒ BeforeInputEventPlugin
+ FallbackCompositionState
ãã¹ãã®ãªãã¡ã¯ã¿ãªã³ã°/çµåãéå§ããŸããã ãããªãã¯APIãä»ããŠå®è£
ããã¹ãããæ¹æ³ãããç解ããŠããŸãã ç§ã¯çŸåšãããŸããŸãªå®è¡ç°å¢/ãã©ãŠã¶ãŒãšã³ãžã³ã«å¿ããŠããŸããŸãªã³ãŒããã¹ãå®è¡ããããã®ãã¹ãã±ãŒã¹ã®äœæã«åãçµãã§ããŸãã ä»é±ã®çµããã«åããŠæåã®PRãäºå®ãããŠããŸãïŒ12æ10æ¥ãŸã§ã«æŽæ°ãããŸãããããå°ãæéãå¿
èŠã§ãã12æ12æ¥ãèŠãŠãã ããïŒã
ããã§ãããã¢ããããŒãããŠãããŠããããšãïŒ
@gaearonã®ã¯ã€ãã¯ã¢ããããŒãïŒ getNodeForCharacterOffset-test
ã®ãã¹ãã®æžãçŽãããã§ã«éå§ããŠãããæšææ¥ãŸã§PRãããã·ã¥ã§ããã¯ãã§ããããã§ããããã§ããïŒ
ããã§ãã
ãã1ã€ããŠã³ïŒ https://github.com/facebook/react/pull/11742
@reznordãŸã é£çµ¡ããããŸãããäœãå§ããŸãããïŒ å¿ããããå Žåã¯ãä»ã®äººã«è©ŠããŠã¿ãæ©äŒãäžããã»ãããããããããŸããã
Ping @reznord
ããã«ã¡ã¯@gaearon ãæåã®å¯ä»ã«ReactErrorUtils-test.js
ãåãããšã¯ã§ããŸããïŒ
ããã«ã¡ã¯ã @gaearonã¯ReactErrorUtils-test.js
ã§ã§ããããšããããŸã
ããã«ã¡ã¯ã誰ããReactBrowserEventEmitter-test.jsãã¹ããç¶è¡ããã®ãæäŒã£ãŠãããŸããïŒ ä»ã¯ä»äºã§å¿ããã®ã§ãç¶ããæéããªãã®ã§ãPRã¯https://github.com/facebook/react/pull/11713ã§ããã©ããããããšãããããŸãã!!
ã¿ãªãããããããšãããããŸããïŒ ãŸã ããã€ãã®æªè§£æ±ºã®ãã¹ãããããŸãããç§ãã¡ã¯ãããéããããšãã§ãããšæããŸãã
@gaearon ïŒ ReactErrorUtils-test.js
ç§ã¯ããã«åãçµã¿ãããšæããŸãã ç§ããããæŸãããšãã§ãããã©ãã確èªã§ããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
æåã«çµ±åãããPRããããŸãïŒ
ãããèŠãŠãã ããïŒ https ïŒ//github.com/facebook/react/pull/11309
ã€ãã³ãã«é¢é£ããäœãã«åãçµãã§ããå Žåã¯ã https ïŒ//github.com/facebook/react/pull/11309ã®ãã£ã¹ã«ãã·ã§ã³ãšæ¬¡ã®ã¬ãã¥ãŒã®äž¡æ¹ãèªãããšããå§ãããŸãã
https://github.com/facebook/react/pull/11316
https://github.com/facebook/react/pull/11317
https://github.com/facebook/react/pull/11327
https://github.com/facebook/react/pull/11332
ããã€ãã®å ±éã®ããŒããããããããã®è°è«ã䜿çšããŠä»ã®PRãæ£ããæ¹åã«å°ãããšã䟡å€ããããããããŸããã