Во-первых, вам нужно импортировать функцию connect
, прежде чем вы сможете использовать ее следующим образом:
import { connect } from 'react-redux';
С помощью помощника connect
вы можете передать до двух аргументов для него первым является либо null
, либо mapStateToProps
, но сначала нужно создать эту функцию. Его цель состоит в том, чтобы взять ваш глобальный объект состояния (состояние приложения), который находится внутри вашего хранилища Redux, и сопоставить его или снять некоторые свойства с объекта состояния и предоставить их в качестве поддержки для вашего компонента AddTodo
.
Я думаю, что вам также не хватает вашего свойства payload
, поэтому вместо этого вы хотите, чтобы ваш создатель действий выглядел так:
export const addTodoCustom = text => {
return {
type: "ADD_TODO",
id: nextTodoId++,
payload: text
};
};
Было бы полезно, чтобы вы также опубликовали свой редуктор, поскольку это все часть системы Redux.
Теперь вернемся к вашей connect()
функции, вторым аргументом будет создатель действия, который вы хотите привязать к этому компоненту, который будет addTodoCustom
. Пожалуйста, убедитесь, что ваш относительный путь к нему в вашем операторе import
правильный.
После того, как вы выполнили все вышеперечисленное, этот export default connect(mapStateToProps, {addTodoCustom})(AddTodo);
должен работать, пока у вас есть функция mapStateToProps
. Если нет, то вам нужно написать это так: export default connect(null, {addTodoCustom})(AddTodo);
Вы никогда не показывали содержимое вашего AddTodo
компонента, и, используя mapStateToProps
, можно только предполагать, что это класс- на основе компонента, было бы полезно, если бы вы также поделились этим кодом.