redux-saga,TypeError:(0,_effects.takeLatest)不是函数吗?

sli*_*wp2 4 reactjs redux redux-saga

我从开始redux-saga。我不知道我做错了什么。

webpack编译成功。我的应用可以运行,但是chrome给了我这个错误。

并且调度动作不起作用。

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;
Run Code Online (Sandbox Code Playgroud)

saga/index.js

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

import Beginning from './Beginning';

export default function* root() {
  yield [fork(Beginning)];
}
Run Code Online (Sandbox Code Playgroud)

Fre*_*eez 6

takeLatest不属于Redux Saga效果(请参阅参考资料),您必须使用导入

import { takeLatest } from 'redux-saga'
Run Code Online (Sandbox Code Playgroud)

代替

import {takeLatest} from 'redux-saga/effects';
Run Code Online (Sandbox Code Playgroud)