From 2f45c2cb1fd49bd9be319a16b3970f27ab15bc27 Mon Sep 17 00:00:00 2001 From: Gabriel Cangussu Date: Thu, 31 Jan 2019 12:14:24 -0200 Subject: [PATCH 1/3] Added RefObject as valid Link innerRef. --- packages/react-router-dom/.size-snapshot.json | 12 ++++----- packages/react-router-dom/docs/api/Link.md | 10 ++++++++ packages/react-router-dom/modules/Link.js | 6 ++++- .../modules/__tests__/Link-test.js | 25 ++++++++++++++++++- 4 files changed, 45 insertions(+), 8 deletions(-) diff --git a/packages/react-router-dom/.size-snapshot.json b/packages/react-router-dom/.size-snapshot.json index a26291280..436514a24 100644 --- a/packages/react-router-dom/.size-snapshot.json +++ b/packages/react-router-dom/.size-snapshot.json @@ -1,8 +1,8 @@ { "esm/react-router-dom.js": { - "bundled": 8025, - "minified": 4824, - "gzipped": 1611, + "bundled": 8092, + "minified": 4881, + "gzipped": 1633, "treeshaked": { "rollup": { "code": 453, @@ -14,9 +14,9 @@ } }, "umd/react-router-dom.js": { - "bundled": 161252, - "minified": 57435, - "gzipped": 16465 + "bundled": 161325, + "minified": 57478, + "gzipped": 16483 }, "umd/react-router-dom.min.js": { "bundled": 97926, diff --git a/packages/react-router-dom/docs/api/Link.md b/packages/react-router-dom/docs/api/Link.md index 7850b886e..1026b4a10 100644 --- a/packages/react-router-dom/docs/api/Link.md +++ b/packages/react-router-dom/docs/api/Link.md @@ -56,6 +56,16 @@ const refCallback = node => { ``` +## innerRef: RefObject + +Get the underlying `ref` of the component with `React.createRef()` + +```jsx +const anchorRef = React.createRef() + + +``` + ## others You can also pass props you'd like to be on the `` such as a `title`, `id`, `className`, etc. diff --git a/packages/react-router-dom/modules/Link.js b/packages/react-router-dom/modules/Link.js index 367ef4ce9..5e5298b81 100644 --- a/packages/react-router-dom/modules/Link.js +++ b/packages/react-router-dom/modules/Link.js @@ -59,7 +59,11 @@ class Link extends React.Component { if (__DEV__) { const toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object]); - const innerRefType = PropTypes.oneOfType([PropTypes.string, PropTypes.func]); + const innerRefType = PropTypes.oneOfType([ + PropTypes.string, + PropTypes.func, + PropTypes.shape({ current: PropTypes.instanceOf(Element) }) + ]); Link.propTypes = { innerRef: innerRefType, diff --git a/packages/react-router-dom/modules/__tests__/Link-test.js b/packages/react-router-dom/modules/__tests__/Link-test.js index ae57190b3..d12c0b58d 100644 --- a/packages/react-router-dom/modules/__tests__/Link-test.js +++ b/packages/react-router-dom/modules/__tests__/Link-test.js @@ -91,7 +91,7 @@ describe("A ", () => { }); }); - it("exposes its ref via an innerRef prop", done => { + it("exposes its ref via an innerRef callback prop", done => { function refCallback(n) { if (n) { expect(n.tagName).toEqual("A"); @@ -109,6 +109,29 @@ describe("A ", () => { ); }); + it("exposes its ref via an innerRef RefObject prop", done => { + const refObject = { + get current() { + return null; + }, + set current(n) { + if (n) { + expect(n.tagName).toEqual("A"); + done(); + } + } + }; + + renderStrict( + + + link + + , + node + ); + }); + describe("with a ", () => { afterEach(() => { window.history.replaceState(null, "", "#"); From 6a69378e827c4d1bd30ac11cbb7d11e526602ef2 Mon Sep 17 00:00:00 2001 From: Gabriel Cangussu Date: Thu, 31 Jan 2019 12:25:57 -0200 Subject: [PATCH 2/3] Added changes to changelog. --- CHANGES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 3c83b1319..9f6f32900 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,9 @@ +## [Unreleased] + +- Add `React.createRef()` as valid for `Link`'s `innerRef` prop ([#6567] by @gcangussu) + +[#6567]: https://github.com/ReactTraining/react-router/pull/6567 + ## [v4.3.0](https://github.com/ReactTraining/react-router/compare/v4.2.0...v4.3.0) > Jun 6, 2018 From 3adc5c3881dc66d5a50391405ae51955e6f63b04 Mon Sep 17 00:00:00 2001 From: Tim Dorr Date: Thu, 31 Jan 2019 09:51:38 -0500 Subject: [PATCH 3/3] Update CHANGES.md --- CHANGES.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 9f6f32900..3c83b1319 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,3 @@ -## [Unreleased] - -- Add `React.createRef()` as valid for `Link`'s `innerRef` prop ([#6567] by @gcangussu) - -[#6567]: https://github.com/ReactTraining/react-router/pull/6567 - ## [v4.3.0](https://github.com/ReactTraining/react-router/compare/v4.2.0...v4.3.0) > Jun 6, 2018