-
Notifications
You must be signed in to change notification settings - Fork 50k
Description
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
Crash during server render due to this.context being undefined. Bug only happens in SSR, and only in dev mode react. Issue appears neither in browser renders, nor in production mode server renders.
note: Using https://reactjs.net/ for c# server-side rendering, with bundled-in version of react disabled (so using the same version of react as the client bundle)
(simplified) application structure
// root component
const {Provider, Consumer} = createContext({});
const Root = props => return <Provider value={props.notNull}>{props.children}</Provider>;
// consumer
class ConsumingComponent extends Component {
static contextType = Consumer;
render() {
if (this.context.someValue) return null;
return <div/>;
}
}
// render tree
<Root>...<ConsumingComponent/>...</Root>
// output of server render
JsRuntimeException: TypeError: unable to get property 'someValue' of undefined or null reference.
What is the expected behavior?
this.context in the consuming component should be the value passed to the Provider, and not undefined.
Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
The bug, as best as I can pin down, appeared in 16.6.3. The code works in 16.6..1, and 16.6.2 is listed as a broken release in the changelog.