2.8 KiB
2.8 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5a24c314108439a4d403614f | アクションイベントをディスパッチする | 6 | 301442 | dispatch-an-action-event |
--description--
dispatch
は、アクションを Redux ストアにディスパッチするために使用するメソッドです。 store.dispatch()
を呼び出して、アクションクリエイターから返された値を渡すと、ストアにアクションが送り返されます。
すでに説明したように、アクションクリエイターは、発生したアクションを指定する type プロパティを持つオブジェクトを返します。 そして、メソッドからアクションオブジェクトを Redux ストアにディスパッチします。 次の行は前のチャレンジの例に基づいていますが、これらは等価であり、どちらもタイプ LOGIN
のアクションをディスパッチします。
store.dispatch(actionCreator());
store.dispatch({ type: 'LOGIN' });
--instructions--
コードエディターの Redux ストアに初期化済みの state があります。これは login
プロパティを含んでいるオブジェクトで、プロパティは現在 false
に設定されています。 また、loginAction()
というアクションクリエイターがあり、これはタイプ LOGIN
のアクションを返します。 dispatch
メソッドを呼び出して LOGIN
アクションを Redux ストアにディスパッチし、loginAction()
によって作成されたアクションを渡してください。
--hints--
関数 loginAction
の呼び出しで、type
プロパティが文字列 LOGIN
に設定されたオブジェクトを返します。
assert(loginAction().type === 'LOGIN');
オブジェクトのプロパティ login
を false
に設定してストアを初期化します。
assert(store.getState().login === false);
store.dispatch()
メソッドを使用して、タイプ 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());