According to the official documentation, string refs will likely be deprecated in the future, and callback refs are preferred.
Although string refs are not deprecated, they are considered legacy, and will likely be deprecated at some point in the future. Callback refs are preferred.
Cf. https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-string-refs.md
We should change how the refs are handled. Thoughts, @gcanti?
Do RN log some warnings about this?
There are no warnings while the app is running or in the console, but they'll be deprecated soon.
"Soon" means react v16 I guess, as removing string refs is a breaking change. We can wait for an actual deprecation (+ possibly other breaking changes coming in the v16 release)
Bumping this React 16.2 is out and this might be changing in 16.3 with the introduction of React.createRef() and deprecation is apparently "scheduled" for 16.4 (source).
Legacy API: String Refs
If you worked with React before, you might be familiar with an older API where the
refattribute is a string, like "textInput", and the DOM node is accessed asthis.refs.textInput. We advise against it because string refs have some issues, are considered legacy, and are likely to be removed in one of the future releases. If you鈥檙e currently usingthis.refs.textInputto access refs, we recommend the callback pattern instead.
https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs
It's already showing a warning btw
Hello, this warning is constantly showing in all these components. I don't know when will it be definitely deprecated, but it kind of bothers to see these warnings poping up.
Would you please consider uppering this issue's priority?
Here is the warning message:
Warning: Component "DatePicker" contains the string ref "input". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref
Thanks in advance!
Most helpful comment
Bumping this React 16.2 is out and this might be changing in 16.3 with the introduction of
React.createRef()and deprecation is apparently "scheduled" for 16.4 (source).https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs