У меня есть этот код в sagas.js
.
import { put, takeLatest } from "redux-saga/effects";
import { getArticles } from "../scripts/resources/articles";
import { GET_ARTICLES, SHOW_MATCHES } from "./constants";
function getMatches(action) {
const { searchValue } = action;
getArticles(searchValue, (matches) => {
console.log(matches)
put({ type: SHOW_MATCHES, payload: matches })
})
}
export default function* rootSaga() {
yield takeLatest(GET_MATCHES, getMatches);
}
А это функция getArticles
.
export function getArticles(input, callBack) {
setTimeout(() => {
callBack(filterArticles(input));
}, 300);
};
Помещение внутри обратного вызова на самом деле не отправляет действие, так как я не дохожу до случая в редюсере. Как я могу отправить это действие?
function* getMatches
, чтобы getMatches была функцией генератора, чтобы работали эффекты от redux-saga. - person The Brofessor   schedule 21.06.2018{ type: SHOW_MATCHES, payload: matches }
Это не акция? - person Matt   schedule 21.06.2018getMatches
была функцией-генератором, чтобы получить эффектput
. вам также необходимо явно указать генераторуyield
эффект, а не просто вызыватьput
. т.е.yield put({ type: "EXAMPLE", payload: data});
- person The Brofessor   schedule 21.06.2018yield
сput
, потому что я передаю егоgetArticles
, который не является генератором, поэтому он выдает ошибку. Моя следующая мысль - передать функциюdispatch
в сагу, но я не уверен, как это сделать. - person Matt   schedule 21.06.2018