1

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が原因だと思っていましたが、コールバックが本当の原因のようです

4

1 に答える 1