Вы должны понимать, как Connect жонглирует типами.
Соединение лучше всего объясняется, если смотреть справа налево:
Ваш компонент принимает 2 реквизита: todos
, fetchTodos
.
Затем он смотрит на mapDispatchToProps
. Ваша реализация этого обеспечивает fetchTodos
. Новый список реквизитов: todos
Наконец, он смотрит на mapStateToProps
: он предоставляет todos
, но для выполнения функции требуется объект, содержащий: todos
, fetchTodos
Ваш последний компонент содержит эти реквизиты: todos
, fetchTodos
Это не то, что вы хотите, вы не хотите ни одного реквизита.
Вам необходимо настроить mapStateToProps
функция:
const mapStateToProps = ({ todos }: StoreState, ownProps: {}): { todos: Todo[]; } => { return { todos };
или просто:
const mapStateToProps = ({ todos }: StoreState): { todos: Todo[]; } => { return { todos };