freeCodeCamp/curriculum/challenges/russian/03-front-end-libraries/redux/dispatch-an-action-event.ru...

3.2 KiB
Raw Blame History

id title challengeType isRequired forumTopicId localeTitle
5a24c314108439a4d403614f Dispatch an Action Event 6 false 301442 Отправка события

Description

Метод dispatch - это то, что вы используете для отправки действий в хранилище Redux. Вызов store.dispatch() со значением, которое получено из создателя действия, посылает действие обратно в хранилище. Напомним, что создатель действия возвращает объект со свойством type, который определяет произошедшее действие. Потом метод отправляет объект действия в хранилище Redux. Основываясь на примере из предыдущего упражнения, следующие строки эквивалентны, и обе отправляют действие типа LOGIN :
store.dispatch(actionCreator());
store.dispatch({ type: 'LOGIN' });

Instructions

В редакторе кода в хранилище Redux инициализировано состояние в виде объекта со свойством login , у которого задано значение false . Также объявлен создатель действия loginAction() , который возвращает действие типа LOGIN . Отправьте действие LOGIN в хранилище Redux, вызвав метод dispatch и передайте ему действие, созданное функцией loginAction() .

Tests

tests:
  - text: Calling the function <code>loginAction</code> should return an object with <code>type</code> property set to the string <code>LOGIN</code>.
    testString: assert(loginAction().type === 'LOGIN');
  - text: The store should be initialized with an object with property <code>login</code> set to <code>false</code>.
    testString: assert(store.getState().login === false);
  - text: The <code>store.dispatch()</code> method should be used to dispatch an action of type <code>LOGIN</code>.
    testString: 'getUserInput => assert((function() {  let noWhiteSpace = getUserInput(''index'').replace(/\s/g,''''); return noWhiteSpace.includes(''store.dispatch(loginAction())'') || noWhiteSpace.includes(''store.dispatch({type: \''LOGIN\''})'') === true })());'

Challenge Seed

const store = Redux.createStore(
  (state = {login: false}) => state
);

const loginAction = () => {
  return {
    type: 'LOGIN'
  }
};

// Dispatch the action here:

Solution

const store = Redux.createStore(
  (state = {login: false}) => state
);

const loginAction = () => {
  return {
    type: 'LOGIN'
  }
};

// Dispatch the action here:
store.dispatch(loginAction());