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

3.6 KiB
Raw Blame History

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

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: Вызов функции <code>loginAction</code> должен возвращать объект со свойством <code>type</code> , у которого установлено значение <code>LOGIN</code> .
    testString: 'assert(loginAction().type === "LOGIN", "Calling the function <code>loginAction</code> should return an object with <code>type</code> property set to the string <code>LOGIN</code>.");'
  - text: Хранилище должно быть инициализировано объектом с идентификатором <code>login</code> , установленным в значение <code>false</code> .
    testString: 'assert(store.getState().login === false, "The store should be initialized with an object with property <code>login</code> set to <code>false</code>.");'
  - text: Метод <code>store.dispatch()</code> должен использоваться для отправки действия типа <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 })(), "The <code>store.dispatch()</code> method should be used to dispatch an action of type <code>LOGIN</code>.");'

Challenge Seed

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

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

// Отправьте действие здесь:

Solution

// solution required