2016-12-15 3 views
2

Я начинаю с redux-saga. Я не могу понять, что я делаю неправильно.redux-saga, TypeError: (0, _effects.takeLatest) не является функцией?

webpack compile удалось. Мое приложение может работать, но хром дает мне эту ошибку.

И отправка товара не работает.

node v6.6.0

saga/Beginning.js:

import {call, put, takeEvery, takeLatest} from 'redux-saga/effects'; 

//api service 
const api = 'http://it-ebooks-api.info/v1'; 

const service = {}; 

service.fetchBook = function (query) { 
    const url = `${api}/search/${query}`; 
    return fetch(url).then(res => res.json()); 
} 

function* fetchBook(action) { 
    try { 
     const books = yield call(service.fetchBook, action.payload.query); 
     yield put({type: 'BOOK_FETCH_SUCCEEDED', books}); 
    } catch(e) { 
     yield put({type: 'BOOK_FETCH_FAILED', message: e.message}); 
    } 
} 

function* watchFetchBook() { 
    yield takeEvery('BOOK_FETCH_REQUESTED', fetchBook); 
} 

function* watchFetchBook() { 
    yield takeLatest('BOOK_FETCH_REQUESTED', fetchBook); 
} 

export default watchFetchBook; 

saga/index.js

import {fork} from 'redux-saga/effects'; 

import Beginning from './Beginning'; 

export default function* root() { 
    yield [ 
     fork(Beginning) 
    ] 
} 

ответ

3

takeLatest не относится к эффектам Redux Saga (see reference), вы должны импортировать его с помощью

import { takeLatest } from `redux-saga` 

вместо

import {takeLatest} from 'redux-saga/effects'; 
+0

да. Я вхожу в точку останова, нахожу это. Спасибо, в любом случае. – novaline

Смежные вопросы