私は、TextInput、Picker、およびTouchableHiglightを持つフォームを持っています。setNativePropsでpicker(Dropdown)selectedValueをリセット/変更する
ユーザーはTextInputに何かを入力し、Pickerからアイテムを選択してTouchableHighlightで送信します。
refを使用してTextInputをリセットすることはできますが、Picker値をデフォルトに変更またはリセットする方法はわかりません。
Possible Unhandled Promise Rejection
TypeError: this.value2ref.setNativeProps is not a function
反応するネイティブ私もこのタイプの参照ではなく無駄にしようとした
constructor(props) {
super(props);
this.state = {
value1: '',
value1ref: '',
value2: '',
value2ref: ''
}
}
<TextInput
onChangeText={(text) => this.setState({value1:text})}
ref={input => {this.value1ref=input}}
/>
<View>
<Picker
selectedValue={this.state.value1}
onValueChange={(itemValue, itemIndex) => this.setState({value2: itemValue})}
ref={input => {this.value2ref=input}}>
<Picker.Item label="Pick an item" value="" />
<Picker.Item label="Item 1" value="Item1" />
<Picker.Item label="Item 2" value="Item2" />
<Picker.Item label="Item 3" value="Item3" />
</Picker>
</View>
<View>
<TouchableOpacity onPress={this.onSubmit.bind(this)}>
<View>
<Text>SUBMIT</Text>
</View>
</TouchableOpacity>
</View>
。
ref={component => this._exampleref=component}>
はJavaScript
onSubmit() {
this.value1ref.setNativeProps({ //This one works
text: "",
});
this.value2ref.setNativeProps({ // This one does NOT work
selectedValue: "",
});
}
私はthis.value1ref.clear()
を使用することができます知っているが、私はそれをポイントを証明するために、この方法をやっているし、また、ピッカーのためのclear()
はありません。
私は州で遊んでみましたが、それだけでは機能していないので別の方法を探しました。私はあなたが 'this.setState({value1: ''});'の代わりに 'this.state.value1 = '';まあ、これは恥ずかしいです。それをクリアしていただきありがとうございます!たぶん今夜はピッカ/ドロップダウンの悪夢を使わずに寝ることができます。 –