0
私のアプリケーションには、それぞれtextInputフィールドを持ついくつかのコンポーネントがあります。各textInputがサブミットされているので、次のコンポーネントのtextInputフィールドにフォーカスします。代わりに、親コンポーネントの私の機能は言う:コンポーネント内のテキスト入力refを読み込むときに、ネイティブリファレンスが未定義です
undefined is not an object (evaluating'_this.refs[nextField].focus')
これは私のコードです:
export default class Parent extends React.Component {
....
render() {
return (
<ScrollView>
<View style={{padding:20}}>
<One
...
onSubmitEditing={this.focusNextField("2")} />
<TWO
.../>
)
}
focusNextField = (nextField) => {
alert(nextField)
this.refs[nextField].focus()
}
}
export default class One extends React.Component {
render() {
return (
<View style={{paddingBottom:5}}>
<TextInput
ref="1"
style={{height:60,paddingLeft:20}}
placeholder="Enter your name"
onSubmitEditing={this.props.onSubmitEditing} />
</View>
)
}
}
export default class Two extends React.Component {
render() {
return (
<View style={{paddingBottom:5}}>
<TextInput
ref="2"
keyboardType="phone-pad"
style={{height:60,paddingLeft:20}}
placeholder="Enter your age" />
</View>
)
}
}
どのように異なるコンポーネントからrefs
を使用することができますか?
感謝を使用する必要がありますが、これはまだ私にエラーを与える: '未定義のオブジェクトではありません(evaluating'_this.refs [nextField] .refs) ' – user94628
あなたのfocusNextField関数にログを記録してみて、パラメータを取得しているかどうかを確認してください。私の推測では、それらをバインドする必要があるということです –
バインドされたパラメータを含む更新されたコードを試してください –