0
これはMeteorを使用するログインコンポーネントです。 成功したユーザーを別の画面「ホーム」にリダイレクトすることはできません。 エラー: 未定義はオブジェクトではありません(評価 '_this2.props.navigation.navigate')。 私はリダイレクトをコールバック関数に入れようとしましたが、同じことをします。ログイン時にユーザーをリダイレクトできないReactNative
この投稿を全コンポーネントコードで編集しました。
class SignIn extends Component {
constructor(props){
super(props);
this.state={
email:'',
password:'',
error: null,
loading: false,
};
}
isValid() {
const { email, password } = this.state;
let valid = false;
if (email.length > 0 && password.length > 0) {
valid = true;
}
if (email.length === 0) {
this.setState({ error: 'You must enter an email address' });
} else if (password.length === 0) {
this.setState({ error: 'You must enter a password' });
}
return valid;
}
onSignIn() {
const { email, password } = this.state;
Meteor.loginWithPassword(email, password, (error) => {
if (error) {
this.setState({ error: error.reason });
console.log(error, 'erreur dans le sign in')
}else{
this.props.navigation.navigate('Home')//HERE
}
});
}
onCreateAccount() {
const { email, password } = this.state;
if (this.isValid()) {
Accounts.createUser({ email, password }, (error) => {
if (error) {
this.setState({ error: error.reason })
} else {
this.setState({email:''})
// temp hack that you might need to use
};
});
}
}
render() {
return (
<View style={styles.container}>
...email input here
...password input here
<TouchableOpacity style={styles.button} onPress={this.onSignIn.bind(this)}>
<Text style={styles.buttonText}>Sign In</Text>
</TouchableOpacity>
</View>
);
}
}
コンポーネントコード全体を確認する必要があります。コンソールにエラーメッセージが表示されますか? –
私は完全なコードを編集しました;-) – Sonia
ナビゲーションにルートを追加するindex.jsとファイルを追加できますか?ところで、このコンポーネントのナビゲーションへの呼び出しはありません。 –