Skip to content

Commit a65de1d

Browse files
authored
Merge pull request #7 from streamich/feat/extra-args
feat: allow extra args in render props
2 parents 9f281fa + 456558e commit a65de1d

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/__tests__/render.test.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {createElement as h} from 'react';
22
import render from '../render';
33
import {mount} from 'enzyme';
44

5-
const Parent = (props) => render(props, {foo: 'bar'});
5+
const Parent = (props) => render(props, {foo: 'bar'}, 'extra1', 'extra2');
66

77
describe('render()', () => {
88
it('exists', () => {
@@ -41,6 +41,17 @@ describe('render()', () => {
4141
expect(wrapper.html()).toBe('<div>bar</div>');
4242
});
4343

44+
it('supports multiple arguments for render props', () => {
45+
const wrapper = mount(
46+
<Parent>{(state, arg1, arg2) => {
47+
expect(arg1).toBe('extra1');
48+
expect(arg2).toBe('extra2');
49+
50+
return <div>...</div>;
51+
}}</Parent>
52+
);
53+
});
54+
4455
it('supports component prop interface', () => {
4556
const MyComp = jest.fn();
4657

src/render.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {createElement as h, cloneElement, version} from 'react';
33
const isReact16Plus = parseInt(version.substr(0, version.indexOf('.'))) > 15;
44
const isFn = fn => typeof fn === 'function';
55

6-
const render = (props, data) => {
6+
const render = (props, data, ...more) => {
77
if (process.env.NODE_ENV !== 'production') {
88
if (typeof props !== 'object') {
99
throw new TypeError('renderChildren(props, data) first argument must be a props object.');
@@ -30,7 +30,7 @@ const render = (props, data) => {
3030

3131
const {render, children = render, component, comp = component} = props;
3232

33-
if (isFn(children)) return children(data);
33+
if (isFn(children)) return children(data, ...more);
3434

3535
if (comp) {
3636
if (process.env.NODE_ENV !== 'production') {

0 commit comments

Comments
 (0)