Skip to content

Commit 9529872

Browse files
committed
Fix cloneElement using string ref w no owner
1 parent 7f93cb4 commit 9529872

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

packages/react/src/__tests__/ReactElementClone-test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,11 @@ describe('ReactElementClone', () => {
371371
) {
372372
expect(clone.ref).toBe(element.ref);
373373
expect(clone.props).toEqual({foo: 'ef'});
374+
} else if (
375+
gate(flags => flags.enableRefAsProp && !flags.disableStringRefs)
376+
) {
377+
expect(clone.ref).toBe(element.ref);
378+
expect(clone.props).toEqual({foo: 'ef'});
374379
} else {
375380
// Not going to bother testing every possible combination.
376381
}

packages/react/src/jsx/ReactJSXElement.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -869,11 +869,11 @@ export function cloneElement(element, config, children) {
869869
if (!enableRefAsProp) {
870870
// Silently steal the ref from the parent.
871871
ref = config.ref;
872+
owner = ReactSharedInternals.owner;
872873
if (!disableStringRefs) {
873874
ref = coerceStringRef(ref, owner, element.type);
874875
}
875876
}
876-
owner = ReactSharedInternals.owner;
877877
}
878878
if (hasValidKey(config)) {
879879
if (__DEV__) {

0 commit comments

Comments
 (0)