Skip to content

Commit 483768d

Browse files
loklaanmarvinhagemeister
authored andcommitted
Fix support for default context value (#130)
Issue here was that the mangled "_defaultValue" prop wasn't being used.
1 parent 131ed17 commit 483768d

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ function renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
8686
// the context value as `this.context` just for this component.
8787
let cxType = nodeName.contextType;
8888
let provider = cxType && context[cxType.__c];
89-
let cctx = cxType != null ? (provider ? provider.props.value : cxType._defaultValue) : context;
89+
let cctx = cxType != null ? (provider ? provider.props.value : cxType.__) : context;
9090

9191
// stateless functional components
9292
rendered = nodeName.call(vnode.__c, props, cctx);
@@ -95,7 +95,7 @@ function renderToString(vnode, context, opts, inner, isSvgMode, selectValue) {
9595
// class-based components
9696
let cxType = nodeName.contextType;
9797
let provider = cxType && context[cxType.__c];
98-
let cctx = cxType != null ? (provider ? provider.props.value : cxType._defaultValue) : context;
98+
let cctx = cxType != null ? (provider ? provider.props.value : cxType.__) : context;
9999

100100
// c = new nodeName(props, context);
101101
c = vnode.__c = new nodeName(props, cctx);

test/context.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,21 @@ describe('context', () => {
9696
<section>value is: </section>
9797
`);
9898
});
99+
100+
it('should support default context value with absent provider', () => {
101+
const { Consumer } = createContext('correct');
102+
let rendered = renderJsx(
103+
<Consumer>
104+
{(value) => (
105+
<section>
106+
value is: {value}
107+
</section>
108+
)}
109+
</Consumer>
110+
);
111+
112+
expect(rendered).to.equal(dedent`
113+
<section>value is: correct</section>
114+
`);
115+
});
99116
});

0 commit comments

Comments
 (0)