2016-11-11 34 views
0

私は自分のカスタムコンポーネントにrefを使うオプションを与えようとしていますが、それを行う方法がわかりません。何が最良の方法でしょうか?私のコンポーネントReact/React-Native Refs [固定]

export default class InputField extends Component { 
    constructor(props) { 
    super(props); 
    } 
    -static- onError() { 
    alert('On Error'); 
    } 
return (
<View style={ styles.inputWr }> 
    <TextInput 
    style={ [styles.input, textDir, textColor] } 
    onChangeText={this.onChangeText} 
    keyboardType={keyboardType} 
    underlineColorAndroid={'rgba(0,0,0,0)'} 
    onFocus={this.onFloatLabel} 
    secureTextEntry={secureTextEntry} 
    value={this.state.text} 
    onBlur={this.onFloatLabel} /> 

インサイド

<View style={ styles.wrapItems }> 
    <TouchableOpacity onPress={() => this.emailInput.onError() }> 
    <Text>Show Error</Text></TouchableOpacity> 
    <InputField ref={(ref) => this.emailInput = ref } alignItems={'center'} placeholder="Your Email" /> 
    <InputField ref={(ref) => this.passwordInput = ref } secureTextEntry={true} placeholder="Your Password" /> 
</View> 

**私は静的関数を削除し、それが働きました。あなたは

<InputField ref={ref => this.emailInput = ref} alignItems={'center'} placeholder="Your Email" /> 

this.emailInputREFパラメータを割り当てる必要があります。しかしレフリーを使用して世話を

+0

実際に何をしようとしていますか?入力フィールドの値にアクセスしますか? – azium

+0

@azium、私は外部からそれを呼び出す私のコンポーネント内の静的関数がありますが、私は何とかこのコンポーネントを参照する必要があります。 –

+0

通常、Reactを使って何か間違っていることを意味します。あなたはそれを呼び出す静的メソッドとコンポーネントでコンポーネントを投稿できますか?ほとんど確実に良い方法があります – azium

答えて

1

は、通常、それは(時々コールバックが仕事をする小道具)良い方法はありません。