1.9 KiB
1.9 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5a24c314108439a4d403614f | 分发 Action Event | 6 | 301442 | dispatch-an-action-event |
--description--
dispatch
方法用于将 action 分派给 Redux store,调用store.dispatch()
将从 action creator 返回的值发送回 store。
action creator 返回一个具有 type 属性的对象,该属性指定已发生的 action,然后,该方法将 action 对象 dispatch 到 Redux store,根据之前的挑战示例,以下内容是等效的,并且都 dispatch 类型为LOGIN
的 action:
store.dispatch(actionCreator());
store.dispatch({ type: 'LOGIN' });
--instructions--
代码编辑器中的 Redux store 具有初始化状态对象{login:'false'},还有一个名为loginAction()
的 action creator,它返回类型为LOGIN
的 action,然后通过调用dispatch
方法将LOGIN
的 action dispatch 给 Redux store,并传递loginAction()
创建的 action。
--hints--
调用函数loginAction
应该返回一个对象{type:"LOGIN"}。
assert(loginAction().type === 'LOGIN');
store 应该初始化一个对象 {login:false}。
assert(store.getState().login === false);
store.dispatch()
方法应该被用于 dispatch 一个类型为LOGIN
的 action。
(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());