redux saga 异步请求死循环,求帮忙看看

发布于 2022-09-11 19:17:04 字数 1555 浏览 18 评论 0

刚入坑,点击按钮抓取数据,陷入无限发请求,帮忙看看
想要的效果是 打开请求之前打开loading,完成后关闭loading
const TABLE_GET = "table_get";
const getAction = () => ({

type: TABLE_GET,
rows,
loading,

});
const defaultState = {

rows: [],
loading: false,

}
const moduleC = (state = defaultState, action) => {

const { type, rows, loading } = action;
switch (type) {
    case TABLE_GET:
        return { ...state, rows, loading };
    default:
        return state;
}

}
export default moduleC;

import { takeEvery, put } from 'redux-saga/effects';
import axios from 'axios';
function* tableGet(action) {

try {
    yield put({
        ...action,
        loading: true,
    });
    const result = yield axios.get("http://jsonplaceholder.typicode.com/posts");
    yield put({
        ...action,
        loading: false,
        rows: result.data
    });
} catch (error) {
    console.log("获取失败!");
    yield put({
        ...action,
        loading: false,
    });
}

}
function* mySaga() {

yield takeEvery(TABLE_GET, tableGet);

}
export default mySaga;

ui组件:
const module = props => {

const { getAction } = props;
return (
    <Fragment>
        <button onClick={getAction}>获取</button>
    </Fragment>
);

}
const dispatchToProps = {

getAction,

}
export default connect(null, dispatchToProps)(module);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱的故事 2022-09-18 19:17:04

刚刚发现,put了好几个同样的TABLE_GET,导致死循环。。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文