与redux-saga

时间:2017-04-19 03:53:58

标签: react-native axios redux-saga

我最近将我的redux-thunk中间件代码转换为使用redux-saga并且它在所有这些日子都很好用,并且突然间它抛出了一个错误。不知道为什么!!

我的Spring Boot REST Client正在返回正确的响应,并且日志中没有错误。如果我使用swagger发出相同的请求,我会按预期收到响应,因此服务器端没有任何问题。

我有以下代码

const LOGIN_URL = 'http://localhost:8888/api/a/login';

export function* loginUserAsync(action) {
    console.log('.loginUserAsync() : action:', action);
    yield put({ type: LoginConstants.LOGIN_USER_IN_PROGRESS });

    const postParams = {
          username: action.props.username,
          password: action.props.password
    };

    const headerParams = {
        headers: {
          'Content-Type': 'application/json',
          //'Content-Type': 'x-www-form-urlencoded'
        }
    };
    console.log('headerParams', headerParams);
    console.log('postParams', postParams);
    try {
        console.log('Before making async post call using axios');
        const response = yield call(axios.post, LOGIN_URL, postParams, headerParams);
        let token;
        console.log('response', response);
        if (response.headers) {
            token = response.headers['x-auth-token'];
            AsyncStorage.setItem('jwt', token);
        }
        // Login Succeeded fire Login Success Action
        yield put({
                type: LoginConstants.LOGIN_USER_SUCCESS,
                token,
                account: response.data
        });

        const navigatorUID = Store.getState().navigation.currentNavigatorUID;
        Store.dispatch(NavigationActions.push(navigatorUID, Router.getRoute('home')));
    } catch (error) {
        // Login Failed fire Login Failure Action
        console.log('loginUserAync() : error:[' + JSON.stringify(error) + ']');
        yield put({
                type: LoginConstants.LOGIN_USER_FAILURE,
                error: error.data
        });
    }
}

export function* loginUser() {
    console.log('.loginUser() :');
    yield takeEvery(LoginConstants.LOGIN_USER, loginUserAsync);
}

在控制台中我看到以下内容:

Screenshot from remote debugging in Chrome

我不知道为什么它突然停止工作。

由于 Sateesh

1 个答案:

答案 0 :(得分:0)

由于某种原因,localhost和127.0.0.1无法被识别,我必须使用实际的IP地址。

当我试图在我的Mac书中运行它时,我遇到了这个问题。它总是与Ubuntu中的localhost一起使用。