sagasミドルウェアを使用して、firebaseを介してredux登録と認証フローを設定しようとしています。しかし、私は得ています:
Module build failed: SyntaxError: Unexpected token (16:3)
14 | registerUser(action.creds).then(response => {
15 | if(response.payload.errorCode)
> 16 | yield put({type: 'REGISTRATION_FAILED', message: {msg_type: 'error', msg_body: response.payload.errorMessage}})
| ^
17 | else
18 | yield put({type: 'REGISTRATION_SUCCESSFUL', user: response})
19 | });
少し一般的ですが、そのコード行をその周りに移動すると、yield は特にコールバックを好まないようです。ただし、これが明確に禁止されている場所はどこにもありません。これを行うためのより良い方法はありますか?これがサガジェネレーターです。
export function* registerUserSaga(action){
console.log('registerUser called')
console.log(action)
registerUser(action.creds).then(response => {
if(response.payload.errorCode)
yield put({type: 'REGISTRATION_FAILED', message: {msg_type: 'error', msg_body: response.payload.errorMessage}})
else
yield put({type: 'REGISTRATION_SUCCESSFUL', user: response})
});
}
ここにfirebase登録関数があります:
export default FireBaseTools = {
registerUser: (creds) => {
return firebaseAuth.createUserWithEmailAndPassword(creds.email, creds.password).then(user => {
return user;
}).catch(error => {
return {
errorCode: error.code,
errorMessage: error.message
}
});
}
}
編集:当初、これはif/elseが原因だと思っていましたが、コールバックが本当の原因のようです