[Flare] Fix SSR issue with serializing responders prop (#16227)
Dominic Gannaway committed
Jul 26, 2019 at 22:47 UTC
0d7141dd49809c3815aeb6fc257d4dfe2607d317
2 files changed
+13
-5
packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
+10
@@ -12,6 +12,7 @@
12
let React;
13
let ReactFeatureFlags;
14
let ReactDOM;
15
+let ReactDOMServer;
16
let ReactTestRenderer;
17
18
// FIXME: What should the public API be for setting an event's priority? Right
@@ -72,6 +73,7 @@ describe('DOMEventResponderSystem', () => {
73
ReactFeatureFlags.enableFlareAPI = true;
74
React = require('react');
75
ReactDOM = require('react-dom');
76
+ ReactDOMServer = require('react-dom/server');
77
container = document.createElement('div');
78
document.body.appendChild(container);
79
});
@@ -93,6 +95,14 @@ describe('DOMEventResponderSystem', () => {
95
expect(renderer).toMatchRenderedOutput(<div>Hello world</div>);
96
});
97
98
+ it('can render correctly with the ReactDOMServer', () => {
99
+ const TestResponder = createEventResponder({});
100
+ const output = ReactDOMServer.renderToString(
101
+ <div responders={<TestResponder />}>Hello world</div>,
102
+ );
103
+ expect(output).toBe(`<div data-reactroot="">Hello world</div>`);
104
+ });
105
+
106
it('the event responders should fire on click event', () => {
107
let eventResponderFiredCount = 0;
108
let eventLog = [];
packages/react-dom/src/server/ReactPartialRenderer.js
+3
-5
@@ -346,11 +346,6 @@ const RESERVED_PROPS = {
346
suppressHydrationWarning: null,
347
};
348
349
-if (enableFlareAPI) {
350
- // $FlowFixMe: Flow doesn't like this, it's temp until we remove the flag anyway
351
- RESERVED_PROPS.responders = null;
352
-}
353
-
349
function createOpenTagMarkup(
350
tagVerbatim: string,
351
tagLowercase: string,
@@ -365,6 +360,9 @@ function createOpenTagMarkup(
360
if (!hasOwnProperty.call(props, propKey)) {
361
continue;
362
}
363
+ if (enableFlareAPI && propKey === 'responders') {
364
+ continue;
365
+ }
366
let propValue = props[propKey];
367
if (propValue == null) {
368
continue;