reactjs - 如何使用redux执行api调用?

标签 reactjs typescript react-redux

我最近在学习react-redux。现在我有点困惑如何执行 api 调用

这是我的操作.ts

export const fetchEvent = () => async (
    dispatch: Dispatch
) => {
    dispatch({ type: ActionTypes.FETCH_EVENT_REQUEST });

    try {
        const response = await axios.get<EvenData[]>(
            `https://jsonplaceholder.typicode.com/todos/`
        );
        dispatch<FetchEventAction>({
            type: ActionTypes.FETCH_EVENT_SUCCESS,
            payload: response.data
        });

    } catch (error) {
        dispatch({ type: ActionTypes.FETCH_EVENT_FAILURE, error });
    }
};

这是我的事件列表,这是我想要调用 api 的地方

const mapStateToProps = (state: ActionTypes) => ({});
const dispatchProps = {};

type Props = ReturnType<typeof mapStateToProps> & typeof dispatchProps;

type State = {};

class EventList extends React.Component<Props, State> {
    componentDidMount() {
        // dispatch(fetchEvent());
    }

    render() {
        return (
            <section>
                <p>{ }</p>
            </section>
        );

    }
}

export default connect(
    mapStateToProps,
    dispatchProps
)(EventList);

那么我该如何进行 api 调用呢?在我的 componentDidMount

最佳答案

您缺少 mapDispatchToProps ,您使用的为空 {}。

import {fetchEvent} from 'action.ts' // change to correct path

const mapStateToProps = (state: ActionTypes) => ({});
const mapDispatchToProps = (dispatch: Dispatch) => {
  return {
    fetchEvent: () => {
      dispatch(fetchEvent())
    }
  };
};

type Props = ReturnType<typeof mapStateToProps> & ReturnType<typeof mapDispatchToProps>;

type State = {};

class EventList extends React.Component<Props, State> {
    componentDidMount() {
        this.props.fetchEvent()
    }

    render() {
        return (
            <section>
                <p>{ }</p>
            </section>
        );

    }
}

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(EventList);

关于reactjs - 如何使用redux执行api调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67759441/

相关文章:

javascript - 有没有一种简单的方法可以在没有大量状态的情况下在 ReactJS 中创建嵌套下拉列表?

html - Create React App提供的react-scripts包需要依赖: Babel-Jest

javascript - 类型错误 : Cannot read property 'actions' of undefined (React-Redux)

javascript - 何时以及为何使用Effect

typescript - TS4090 错误 : Conflicting libraries for node in electron

javascript - 有没有办法让第二个函数使用第一个函数: syntax

javascript - 当状态改变时 Redux 不会更新 React 组件

typescript - src ➜ tsc ➜ rollup ➜ `source maps` 能否指向原来的TypeScript src?

从接口(interface)到递归类型的 typescript 转换会引发类型错误中缺少索引签名

css - react : Stop click event propagation when using mixed React and DOM events