。
React + Reduxでログイン機能を実装しようとしています。React初心者です。
フォーム入力値を出力してみるとStringではないとでました。どのようにしてStringに直せばよいのでしょうか?
よろしくおねがいします。
発生している問題・エラーメッセージ
auth.esm.js:8795 Uncaught L {code: "auth/argument-error", message: "signInWithEmailAndPassword failed: First argument "email" must be a valid string."}
該当のソースコード
Javascript
1// ヘルパー 2 onEmailChange(text) { 3 const { actions } = this.props; 4 5 console.log(text); 6 actions.emailChanged(text); 7 } 8 9// フォーム 10 <TextField 11 label='メールアドレス' 12 onChange={this.onEmailChange.bind(this)} 13 value={this.props.email} 14 /> 15 16// Redux 17const mapStateToProps = state => { 18 19 return state; 20}; 21 22 23function mapDispatchToProps(dispatch) { 24 return { 25 actions: bindActionCreators(Account_actions, dispatch), 26 }; 27}
試したこと
console.log(state)でstoreを表示してみると、メールがStringではなくSyntheticEventとなっています。
Javascript
1email: SyntheticEvent {dispatchConfig: null, _targetInst: null, _dispatchListeners: null, _dispatchInstances: null, …} 2error: "" 3loading: false 4password: "" 5user: null
補足情報
念の為、Reducerも上げます。
import { EMAIL_CHANGED, PASSWORD_CHANGED, LOGIN_USER_SUCCESS, LOGIN_USER_FAIL, LOGIN_USER } from '../actions/types'; const INITIAL_STATE = { email: '', password: '', user: null, error: '', loading: false }; export default (state = INITIAL_STATE, action) => { switch (action.type) { case EMAIL_CHANGED: return { ...state, email: action.payload }; case PASSWORD_CHANGED: return { ...state, password: action.payload }; case LOGIN_USER: return { ...state, loading: true, error: '' }; case LOGIN_USER_SUCCESS: return { ...state, ...INITIAL_STATE, user: action.payload }; case LOGIN_USER_FAIL: return { ...state, error: 'Authentication Failed.', password: '', loading: false }; default: return state; } };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/11/13 07:29