Saya memiliki kode ini di 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);
}
Dan ini adalah fungsi getArticles
.
export function getArticles(input, callBack) {
setTimeout(() => {
callBack(filterArticles(input));
}, 300);
};
Panggilan balik yang dimasukkan ke dalam tidak benar-benar mengirimkan tindakan karena saya tidak mencapai kasus di peredam. Bagaimana cara mengirimkan tindakan ini?
function* getMatches
agar getMatches menjadi fungsi generator agar efek dari redux-saga berfungsi. - person The Brofessor   schedule 21.06.2018{ type: SHOW_MATCHES, payload: matches }
Ini bukan suatu tindakan? - person Matt   schedule 21.06.2018getMatches
menjadi fungsi generator untuk menghasilkan efekput
. Anda juga perlu secara eksplisit memberi tahu generator untukyield
efeknya, bukan hanya memanggilput
. Yaitu.yield put({ type: "EXAMPLE", payload: data});
- person The Brofessor   schedule 21.06.2018yield
denganput
karena saya meneruskannya kegetArticles
yang bukan generator sehingga menimbulkan kesalahan. Pikiran saya selanjutnya adalah meneruskan fungsidispatch
ke dalam saga tetapi saya tidak yakin bagaimana melakukannya. - person Matt   schedule 21.06.2018