は、私の知る限り承知しているようref
文字列への主な代替は、実際にES6スタイルのコールバック関数です。
ので:リアクトでref
属性が自動的にパラメータとして参照されているコンポーネントを受け取るので、これはかなり強力です
<textarea ref={ (ref) => this.myTextArea = ref }>
...
</textarea>
// Where refs are then accessed by `this.myTextArea`
、私たちを可能にする:
<textarea ref="myTextArea">
...
</textarea>
// Where refs are then accessed by `this.refs.myTextArea` to perform any operations
は、基本的な形でとなり、必要に応じてすぐにコールバック操作を実装することができます。これはthis.myTextArea
にその参照を割り当てるために、上記のように、簡単な形態で使用することができる、またはあなたはおそらくドキュメントに気づいたとして、あなたはもう少し直接的なものと同じようなことを行うことができます。
<input
ref = {(input) =>
{ if (input != null) {input.focus()} }
} />
これは時には、あなたが最低限の行数でコードを表現できることを意味しますが、可読性を犠牲にすることは間違いありません。 ref
文字列を使用して、イベントハンドラで使用するためのコンポーネントへの参照を保存する場合(非常に一般的ですが)、正にまだ最もクリーンな方法です。彼らはにはかなり頻繁に使用されているように私は本当に&反応し、警告なしに廃止されるためにそれらを予想していないでしょう
は便利なままですが、彼らはこれまでであれば、あなたの最善の策は、単純な(ref) => this.myRef = ref
は、あなたの参照文献にアクセスすると、簡単リファクタリングだろうthis.myRef
。
あなたはレフリーでご利用の場合にellaborateていただけますか? sidenoteとして、imhoの非推奨のrefは、通常のpropsの方法(実際のDOM操作など)では得られない使い方を持っているので、Reactがやることのようには聞こえません。 – omerts
私はまったく同じ質問をしています。これは、特に私のようなReactの初心者にとっては非常に混乱します。私はそれを使うべきか、そうでなければならないのですか? – Unless