From 2740158746128ad2cc66394e32c49496ba5862f1 Mon Sep 17 00:00:00 2001 From: Sebastian Sebbie Silbermann Date: Tue, 18 Nov 2025 14:52:13 +0100 Subject: [PATCH 1/3] Add fixture --- .../src/components/fixtures/selects/index.js | 63 ++++++++++++++++++- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/fixtures/dom/src/components/fixtures/selects/index.js b/fixtures/dom/src/components/fixtures/selects/index.js index 9356a3770ac98..012a3eea959da 100644 --- a/fixtures/dom/src/components/fixtures/selects/index.js +++ b/fixtures/dom/src/components/fixtures/selects/index.js @@ -3,6 +3,28 @@ import TestCase from '../../TestCase'; const React = window.React; const ReactDOM = window.ReactDOM; +const ReactDOMClient = window.ReactDOMClient; + +class ControlledSelect extends React.Component { + constructor(props) { + super(props); + this.state = {value: 'bar'}; + } + + handleChange = event => { + this.setState({value: event.target.value}); + }; + + render() { + return ( + + ); + } +} class SelectFixture extends React.Component { state = {value: ''}; @@ -33,15 +55,24 @@ class SelectFixture extends React.Component { } _renderNestedSelect() { - ReactDOM.render( + const element = ( , - this._nestedDOMNode + ); + const container = this._nestedDOMNode; + if (ReactDOMClient === undefined) { + ReactDOM.render(element, container); + } else { + const root = ReactDOMClient.createRoot(container); + // eslint-disable-next-line no-undef -- queueMicrotask is supported in modern browsers + queueMicrotask( + ReactDOM.flushSync.bind(null, root.render.bind(root, element)) + ); + } } render() { @@ -230,6 +261,32 @@ class SelectFixture extends React.Component { select attribute assignment.

+ + + + No options should be selected. + + +
+
+ + + +
+ +

+ Notes: form.reset() resets each associated form + element to its default value. For HTMLInputElement that's the value + attribute. For HTMLSELECTElement it's option with defaultSelected + set to true. +

+

+ Bug became more pressing when React introduced automatic form reset. +

+
); } From e00e0517de248925a1eced59e574f20510fe1613 Mon Sep 17 00:00:00 2001 From: Sebastian Sebbie Silbermann Date: Tue, 18 Nov 2025 14:55:48 +0100 Subject: [PATCH 2/3] [react-dom] Keep controlled ` instead of ' + - 'setting `selected` on