Ich bin mit einem Problem auf React-native konfrontiert. Ich habe TextInput
, die den ganzen Bildschirm dauert. Ich möchte den Inhalt dieser Texteingabe ändern, wenn der Benutzer nach oben oder unten wischt. Dazu benutze ich eine PanResponder
.PanResponder über einen TextInput in reaktionsnativen
Das Problem ist, dass die PanResponder
den Fokus von der TextInput
stiehlt: Wenn ich auf dem TextInput
klicken, wird die Tastatur nicht angezeigt und ich kann nicht seinen Wert ändern.
Gibt es einen Weg, um sowohl die PanResponder
und den Textinput
koexistieren zu haben, so dass ein Hahn auf den TextInput
konzentrieren und eine Durchzug noch die PanResponder
Rückrufe auslösen?
reduzierte ich den Code auf das Minimum, das Problem zu reproduzieren benötigt:
export default class EditNoteScreen extends Component {
componentWillMount() {
this.panResponder = PanResponder.create({
onStartShouldSetPanResponder:() => true,
onStartShouldSetPanResponderCapture:() => true,
onMoveShouldSetResponderCapture:() => true,
onMoveShouldSetPanResponderCapture:() => true
});
}
render() {
return (
<View style={stylesNote.editScreen} {...this.panResponder.panHandlers}>
<View style={stylesNote.editScreenContent}>
<TextInput style={stylesNote.editScreenInput}>
Hello
</TextInput>
</View>
</View>
);
}
}
Styles:
editScreen: {
flex: 1
},
editScreenContent: {
flex: 5
},
editScreenInput: {
flex: 1,
borderColor: "transparent",
paddingLeft: 20,
paddingRight: 10
}
Perfekt, danke! –