diff --git a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js index 53a4786f73cdf..e723299f92420 100644 --- a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js +++ b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js @@ -729,15 +729,16 @@ function pushStartOption( } } break; - case 'value': - value = propValue; - break; case 'dangerouslySetInnerHTML': invariant( false, '`dangerouslySetInnerHTML` does not work on <option>.', ); // eslint-disable-next-line-no-fallthrough + case 'value': + value = propValue; + // We intentionally fallthrough to also set the attribute on the node. + // eslint-disable-next-line-no-fallthrough default: pushAttribute(target, responseState, propKey, propValue); break; diff --git a/packages/react-server/src/ReactFizzServer.js b/packages/react-server/src/ReactFizzServer.js index 1a838be226c8b..8b84ce822bccf 100644 --- a/packages/react-server/src/ReactFizzServer.js +++ b/packages/react-server/src/ReactFizzServer.js @@ -563,11 +563,11 @@ function renderClassComponent( Component: any, props: any, ): void { - const unmaskedContext = !disableLegacyContext - ? task.legacyContext + const maskedContext = !disableLegacyContext + ? getMaskedContext(Component, task.legacyContext) : undefined; - const instance = constructClassInstance(Component, props, unmaskedContext); - mountClassInstance(instance, Component, props, unmaskedContext); + const instance = constructClassInstance(Component, props, maskedContext); + mountClassInstance(instance, Component, props, maskedContext); finishClassComponent(request, task, instance, Component, props); }