mapDispatchToProps не соединяет функцию с реквизитом

-1

Я использую React-Redux с машинописным шрифтом и пытаюсь получить доступ к функции, определенной в mapDispatchToProps, однако получаю следующую ошибку:

Uncaught TypeError: this.props.getStoreList не является функцией в t.componentDidMount

Два вовлеченных файла - это container.tsx и mapper.ts. Я попытался поместить содержимое файла mapper.ts в container.tsx на случай, если возникла проблема с импортом, однако это не исправляет ошибку.

Сценарий очень похож на этот предыдущий вопрос stackoverflow: mapDispatchToProps не помещает мою функцию в реквизит, однако решение, похоже, не применимо к моей ситуации.

container.tsx

import * as React from 'react';
import { connect } from "react-redux";
import { mapStateToProps, mapDispatchToProps } from "./mapper";
import { IStoreListComponentProps } from './component';

export interface IStoreListContainerProps extends IStoreListComponentProps {
    fetchStoreList?: () => void;
}

export class StoreListContainer extends React.Component<IStoreListContainerProps> {
    componentDidMount() {
        this.props.fetchStoreList();
    }

    render() {
        return <div>Example</div>;
    }
}

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

mapper.ts

import { fetchStoreList } from "./actions/fetch-store-list";
import { IState } from "../../features/store/model";

export const mapDispatchToProps = (dispatch: any) => {
    return {
        getStoreList: () => { dispatch(fetchStoreList()); },
    };
};

export const mapStateToProps = (state: IState) => {
    return {
        storeList: state.storeList
    };
};

Спасибо за помощь!

  • 0
    "fetchStoreList" !== "getStoreList"
Теги:
react-redux

1 ответ

0
export const mapDispatchToProps = (dispatch: any) => {
    return {
        getStoreList: () => dispatch(fetchStoreList()),
    };
};

попробуйте написать так

Ещё вопросы

Сообщество Overcoder
Наверх
Меню