前提
- React Native
- Firebase authentication
- Expo
要件
・Firebase authenticationを利用してFirebaseにユーザー登録
・classコンポーネントで書かれているサンプルをfunctionコンポーネントに書き換えたい(Hooks利用)
エラー
おそらく9行目のhandleSubmitの関数がうまくいっていない
js
1 const handleSubmit = () => { 2 const { email, password } = state; 3 signup(email, password); 4 }
コード全文
コメントアウトしてる箇所はclassコンポーネントのサンプル(こっちは問題なく登録できます)
jsx
1import React, { useState } from 'react'; 2import { Text, View, Button, TextInput } from 'react-native'; 3import { signup } from './firebase'; 4 5const SignUp = () => { 6 const [email, setEmail] = useState(''); 7 const [password, setPassword] = useState(''); 8 9 // おそらくここが間違っているがどうすればいいかわからない 10 const handleSubmit = () => { 11 const { email, password } = state; 12 signup(email, password); 13 } 14 15 return ( 16 <> 17 <Text>SignUp</Text> 18 <View> 19 <Text>メールアドレス</Text> 20 <TextInput 21 onChangeText={(email) => setEmail({email})} 22 value={email} 23 placeholder="メールアドレスを入力してください" 24 /> 25 </View> 26 27 <View> 28 <Text>パスワード</Text> 29 <TextInput 30 onChangeText={(password) => setPassword({password})} 31 value={password} 32 placeholder="パスワードを入力してください" 33 /> 34 </View> 35 36 <View> 37 <Button 38 title="送信" 39 onPress={() => handleSubmit()} 40 /> 41 </View> 42 </> 43 ); 44} 45 46// class SignUp extends React.Component { 47// constructor(props) { 48// super(props); 49// this.state = { 50// email: '', 51// password: '', 52// }; 53// } 54 55// // ユーザー登録のメソッド 56// handleSubmit = () => { 57// const { email, password } = this.state; 58// signup(email, password); 59// } 60 61// render() { 62// return ( 63// <> 64// <View> 65// <Text>メールアドレス</Text> 66// <TextInput 67// onChangeText={(email) => this.setState({email})} 68// value={this.state.email} 69// placeholder="メールアドレスを入力してください" 70// /> 71// </View> 72 73// <View> 74// <Text>パスワード</Text> 75// <TextInput 76// onChangeText={(password) => this.setState({password})} 77// value={this.state.password} 78// placeholder="パスワードを入力してください" 79// /> 80// </View> 81 82// <View> 83// <Button 84// title="送信" 85// onPress={() => this.handleSubmit()} 86// /> 87// </View> 88// </> 89// ) 90// } 91// } 92 93export default SignUp;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/29 08:37
2020/09/29 08:42
2020/09/29 08:46
2020/09/29 08:51
2020/09/29 08:56