diff --git a/src/__tests__/render.test.tsx b/src/__tests__/render.test.tsx index 2038cab..b1227d4 100644 --- a/src/__tests__/render.test.tsx +++ b/src/__tests__/render.test.tsx @@ -2,7 +2,7 @@ import {createElement as h} from 'react'; import render from '../render'; import {mount} from 'enzyme'; -const Parent = (props) => render(props, {foo: 'bar'}); +const Parent = (props) => render(props, {foo: 'bar'}, 'extra1', 'extra2'); describe('render()', () => { it('exists', () => { @@ -41,6 +41,17 @@ describe('render()', () => { expect(wrapper.html()).toBe('
bar
'); }); + it('supports multiple arguments for render props', () => { + const wrapper = mount( + {(state, arg1, arg2) => { + expect(arg1).toBe('extra1'); + expect(arg2).toBe('extra2'); + + return
...
; + }}
+ ); + }); + it('supports component prop interface', () => { const MyComp = jest.fn(); diff --git a/src/render.ts b/src/render.ts index 1edbb5a..411f18d 100644 --- a/src/render.ts +++ b/src/render.ts @@ -3,7 +3,7 @@ import {createElement as h, cloneElement, version} from 'react'; const isReact16Plus = parseInt(version.substr(0, version.indexOf('.'))) > 15; const isFn = fn => typeof fn === 'function'; -const render = (props, data) => { +const render = (props, data, ...more) => { if (process.env.NODE_ENV !== 'production') { if (typeof props !== 'object') { throw new TypeError('renderChildren(props, data) first argument must be a props object.'); @@ -30,7 +30,7 @@ const render = (props, data) => { const {render, children = render, component, comp = component} = props; - if (isFn(children)) return children(data); + if (isFn(children)) return children(data, ...more); if (comp) { if (process.env.NODE_ENV !== 'production') {