freeCodeCamp/curriculum/challenges/italian/03-front-end-development-li.../redux/dispatch-an-action-event.md

2.3 KiB

id title challengeType forumTopicId dashedName
5a24c314108439a4d403614f Inviare un evento azione 6 301442 dispatch-an-action-event

--description--

Il metodo dispatch è quello che usi per inviare azioni allo store Redux. Chiamando store.dispatch() e passando il valore restituito da un creatore di azione, un'azione viene inviata di rimando allo store.

Ricorda che i creatori di azione restituiscono un oggetto con una proprietà type che specifica l'azione che si è verificata. Quindi il metodo invia un oggetto di azione allo store di Redux. Sulla base dell'esempio della sfida precedente, le seguenti righe sono equivalenti, ed entrambe inviano l'azione di tipo LOGIN:

store.dispatch(actionCreator());
store.dispatch({ type: 'LOGIN' });

--instructions--

Lo store Redux nell'editor di codice ha uno stato inizializzato con un oggetto contenente una proprietà login, attualmente impostata a false. C'è anche un creatore di azione denominato loginAction() che restituisce un'azione di tipo LOGIN. Invia l'azione LOGIN allo store Redux chiamando il metodo dispatch, e passandole l'azione creata da loginAction().

--hints--

Chiamare la funzione loginAction dovrebbe restituire un oggetto con la proprietà type impostata alla stringa LOGIN.

assert(loginAction().type === 'LOGIN');

Lo store dovrebbe essere inizializzato con un oggetto con proprietà login impostata su false.

assert(store.getState().login === false);

Il metodo store.dispatch() dovrebbe essere utilizzato per inviare un'azione di tipo LOGIN.

(getUserInput) =>
  assert(
    (function () {
      let noWhiteSpace = getUserInput('index').replace(/\s/g, '');
      return (
        noWhiteSpace.includes('store.dispatch(loginAction())') ||
        noWhiteSpace.includes("store.dispatch({type: 'LOGIN'})") === true
      );
    })()
  );

--seed--

--seed-contents--

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

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

// Dispatch the action here:

--solutions--

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

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

store.dispatch(loginAction());