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') {