takeLatest $ 1需要一个传奇参数

时间:2019-05-08 14:37:44

标签: react-native redux redux-saga

问题

大家好,我正在尝试使用redux-saga,标题说我有错误

takeLatest$1 requires a saga parameters

我不知道自己缺少什么,也没有在互联网上找到任何相关的东西。

代码

在下面,您将找到文件saga/index.js

import {
  GET_NEWS_REQUEST,
} from '../types';
import { takeLatest } from 'redux-saga/effects';
import { fetchRecords } from './apiCallSaga';

export default function* root() {
  yield takeLatest(GET_NEWS_REQUEST, fetchRecords,);
}

在同一文件夹中,我拥有文件saga/apiCallSaga.js

import { put } from 'redux-saga/effects';
import { getNewsSuccess, getNewsFailed } from '../actions';

function* fetchRecords() {

  const url = 'https://newsapi.org/v2/top-headlines?'

  try {
    const response = yield fetch(url).then(res => res.json());
    console.log(response);
    yield put(getNewsSuccess(response));
  } catch (e) {
    yield getNewsFailed();
  }
}; 

export default { fetchRecords };

预期行为

我需要拨打链接(提供的链接不完整)。该错误不应出现。

2 个答案:

答案 0 :(得分:1)

好吧,我找到了答案。

问题是

export default

我只需要

export { fetchRecords };

答案 1 :(得分:0)

我在使用 reduxsauce 包和打字稿时遇到了同样的错误,我一直在问这个问题。

export default function* root() {
  yield takeLatest(GET_NEWS_REQUEST, fetchRecords,);
}

为了防止上面抛出你需要像下面这样创建Actions;

const {
  Types,
  Creators
}: CreatedActions<ActionTypes, DefaultActionCreators> = createActions({
  getNewsRequest: null
});