diff --git a/compat/src/forwardRef.js b/compat/src/forwardRef.js index 5f3ef0035b..9f139d3998 100644 --- a/compat/src/forwardRef.js +++ b/compat/src/forwardRef.js @@ -22,7 +22,7 @@ export function forwardRef(fn) { // It expects an object here with a `render` property, // and prototype.render will fail. Without this // mobx-react throws. - Forwarded.render = Forwarded; + Forwarded.render = fn; Forwarded.prototype.isReactComponent = true; Forwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')'; diff --git a/compat/test/browser/forwardRef.test.js b/compat/test/browser/forwardRef.test.js index 4e7968dd6d..e8fe27e5a0 100644 --- a/compat/test/browser/forwardRef.test.js +++ b/compat/test/browser/forwardRef.test.js @@ -498,4 +498,15 @@ describe('forwardRef', () => { expect(actual).to.equal(null); }); + + // Issue #4769 + it('should attach .render pointing to the original render function', () => { + function Foo(props, ref) { + return
; + } + + const Forwarded = forwardRef(Foo); + + expect(Forwarded.render).to.equal(Foo); + }); });