Tcomb-form-native: string `refs` are considered legacy

Created on 3 Aug 2016  路  7Comments  路  Source: gcanti/tcomb-form-native

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

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).

Legacy API: String Refs

If you worked with React before, you might be familiar with an older API where the ref attribute is a string, like "textInput", and the DOM node is accessed as this.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 using this.refs.textInput to access refs, we recommend the callback pattern instead.

https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs

All 7 comments

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 ref attribute is a string, like "textInput", and the DOM node is accessed as this.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 using this.refs.textInput to 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!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

michaelbenker picture michaelbenker  路  3Comments

alexicum picture alexicum  路  6Comments

scarlac picture scarlac  路  4Comments

ishigamii picture ishigamii  路  3Comments

casoetan picture casoetan  路  5Comments