redux-saga/effectsを使って別のClassから呼び込むとエラーが出てハマっています。
以下でnewだとうまくいくのですが、sagaでcallするとthis.のメソッドがnullと言われてしまいます。
ご教示願えないでしょうか?
// ApiService.js import axios from "axios"; export default class ApiService { constructor() {} createApiClient({ token = null }) { const apiClient = axios.create({ baseURL: "https://*****", timeout: 3000, headers: { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest", token: token }, responseType: "json" }); return apiClient; } get(url, tokenVal) { return this.createApiClient({ token: tokenVal }) .get(`${url}`) .then(response => { return response; }) .catch(function(error) { console.log("ERROR!! occurred in Backend."); }); } }
//aa_Module,js import { call, put, take } from "redux-saga/effects"; import ApiService from "**/ApiService"; const apiService = new ApiService(); // newするとこれだと動く apiService_a.get( "hoge", "hogeToken" ); export const sagas = { *doGet() { while (true) { yield take(actions.setAAData); try { const res = yield call( apiService_a.get, "hoge", "hogeToken" ); console.log(res); //↑これだと /* typeError: Cannot read property 'createApiClient' of null */ //発生 } catch (e) { console.log(e); } } } };

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/28 08:15
2019/06/28 08:19
2019/06/28 09:03