问题
大家好,我正在尝试使用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 };
预期行为
我需要拨打链接(提供的链接不完整)。该错误不应出现。
答案 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
});