मैं नेविगेटर आईओएस से नेविगेटर में कनवर्ट करने की कोशिश कर रहा हूं और ऐसा लगता है कि पासप्रॉप कैसे काम करना है। मैं दो चर, एलआरए और अगले दृश्य में ईमेल करने की कोशिश कर रहा हूं, लेकिन मैं अपरिभाषित हो रहा हूं। मैं इसके लिए बहुत नया हूं इसलिए मुझे खेद है कि यह एक आसान सवाल है। यहां मेरा कोड अभी तक है, मुझे कोई अन्य सुझाव देने के लिए स्वतंत्र महसूस करें जो आप इसके साथ गलत देखते हैं!नेविगेटर के लिए पासप्रॉप समकक्ष?
DataEntry.js
class DataEntry extends Component {
constructor(props) {
super(props);
this.state = {
emailString: '[email protected]',
isLoading: false,
message: '',
mailerror: false,
lraerror: false
};
}
onEmailTextChanged(event) {
this.setState({ emailString: event.nativeEvent.text });
if (!validateEmail(this.state.emailString)){
this.emailError = "Please enter a valid email"
this.setState({error: true})
}
else{
this.emailError = ""
this.setState({error: false})
}
}
onLRATextChanged(event) {
this.setState({ LRAString: event.nativeEvent.text });
if (!isValidID(this.state.LRAString)){
this.LRAError = "Valid LRA ID is 4-10 alphanumeric characters"
this.setState({error: true})
}
else{
this.LRAError = ""
this.setState({error: false})
}
}
gotoNext() {
var emailtext = this.state.emailString
var LRAtext = this.state.LRAString
console.log(emailtext)
this.props.navigator.push({
id: 'PasswordView',
name: 'Generated Password',
email: emailtext,
LRA: LRAtext
});
}
renderScene(route, navigator) {
var email = this.state.emailString
var LRA = this.state.LRAString
return (
<View style={styles.container}>
<Text style={styles.description}>
Please enter the email and LRA
</Text>
<View style={styles.flowRight}>
<TextInput
style={styles.searchInput}
value={this.state.emailString}
onChange={this.onEmailTextChanged.bind(this)}
placeholder='Enter Email'/>
</View>
<Text style={styles.error}>
{this.emailError}
</Text>
<View style={styles.flowRight}>
<TextInput
style={styles.searchInput}
value={this.state.LRAString}
onChange={this.onLRATextChanged.bind(this)}
placeholder='Enter LRA ID'/>
</View>
<Text style={styles.error}>
{this.LRAError}
</Text>
<TouchableHighlight style={styles.button}
underlayColor='#99d9f4'
onPress={this.gotoNext.bind(this)}>
<Text style={styles.buttonText}>Retrieve Password</Text>
</TouchableHighlight>
<Text style={styles.description}>{this.state.message}</Text>
</View>
);
}
render() {
return (
<Navigator
renderScene={this.renderScene.bind(this)}
navigator={this.props.navigator}
navigationBar={
<Navigator.NavigationBar style={{backgroundColor: '#48BBEC', alignItems: 'center'}}
routeMapper={NavigationBarRouteMapper} />
} />
);
}
}
var NavigationBarRouteMapper = {
LeftButton(route, navigator, index, navState) {
return null;
},
RightButton(route, navigator, index, navState) {
return null;
},
Title(route, navigator, index, navState) {
return (
<TouchableOpacity style={{flex: 1, justifyContent: 'center'}}>
<Text style={{color: 'white', margin: 10, fontSize: 16}}>
Data Entry
</Text>
</TouchableOpacity>
);
}
};
module.exports = DataEntry;
नेविगेटर कोड ईमानदार होने के लिए अधूरा लगता है। मैं https://github.com/exponentjs/ex-navigator के साथ जा रहा था जो अधिक समझ में आता है। उन्होंने यहां एक पूर्ण लेखन किया: https://medium.com/the-exponent-log/routing-and-navigation-in-react-native-6b27bee39603 – tijs