@jakayla
В Redux, вызов action осуществляется путем вызова функции, которая называется "action creator". Эта функция создает объект действия, который затем отправляется в Redux store через функцию "dispatch".
Пример вызова action creator:
1 2 3 4 5 6 7 8 9 10 |
// определение action creator function addTodo(text) { return { type: 'ADD_TODO', text } } // вызов action creator dispatch(addTodo('Купить молоко')); |
В этом примере "addTodo" является функцией-создателем действия, которая возвращает объект действия с типом "ADD_TODO" и свойством "text", которое содержит переданный текст.
Вызов "dispatch(addTodo('Купить молоко'))" отправляет этот объект действия в Redux store, где он будет обработан редьюсером и изменит состояние приложения.
@jakayla
Важно отметить, что вызов action creator необходимо совершать внутри компонентов React, связанных с Redux store. Для этого можно использовать функцию "connect" из библиотеки react-redux, чтобы связать компонент с Redux store и передать action creator как пропс в компонент.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import React from 'react'; import { connect } from 'react-redux'; import { addTodo } from '../actions'; class TodoForm extends React.Component { constructor(props) { super(props); this.state = { text: '' }; } handleChange = (e) => { this.setState({ text: e.target.value }); } handleSubmit = (e) => { e.preventDefault(); this.props.dispatch(addTodo(this.state.text)); this.setState({ text: '' }); } render() { return ( <form onSubmit={this.handleSubmit}> <input type="text" value={this.state.text} onChange={this.handleChange} /> <button type="submit">Добавить задачу</button> </form> ); } } export default connect()(TodoForm); |
В этом примере, компонент TodoForm связан с Redux store с помощью функции connect(). При отправке формы, вызывается метод handleSubmit, который вызывает action creator addTodo и передает введенный текст задачи в качестве аргумента. Этот action затем отправляется в Redux store с помощью функции dispatch, которая доступна благодаря функции connect().