コンポーネント内のいくつかの参照にアクセスしようとしています。しかし、コンソールにこのエラーがあります。 withRouter.js:44 Warning: Stateless function components cannot be given refs (See ref "pseudo" in FormInputText created by RegisterForm). Attempts to access this ref will fail.
これが私のコンポーネントです:
class RegisterForm extends React.Component {
render() {
return (
<form action="">
<FormInputText ref="pseudo" type="text" defaultValue="pseudo"/>
<input type="button" onClick={()=>console.log(this.refs);} value="REGISTER"/>
</form>
);
}
}
さらに、ボタンをクリックすると、コンソールにObject {pseudo: null}
が表示されます。代わりにnull
のオブジェクトを期待します。
これが機能しない理由がわかりません。私のreactツリーはmobx-react
を使用していることに注意してください。
参照はステートレスコンポーネントでは機能しません。それは ドキュメント で説明されています
ステートレス関数にはバッキングインスタンスがないため、ステートレス関数コンポーネントに参照をアタッチすることはできません。
執筆時点でのステートレスコンポーネントには実際にはインスタンスがあります(内部でクラスにラップされています)が、Reactチームが将来最適化する予定であるため、アクセスできません。 を参照) https://github.com/facebook/react/issues/4936#issuecomment-17990998