Files
freeCodeCamp/curriculum/challenges/chinese/03-front-end-libraries/redux/define-a-redux-action.chinese.md

62 lines
1.7 KiB
Markdown
Raw Normal View History

---
id: 5a24c314108439a4d403614d
title: Define a Redux Action
challengeType: 6
isRequired: false
forumTopicId: 301440
localeTitle: 定义一个 Redux Action
---
## Description
<section id='description'>
由于 Redux 是一个状态管理框架,因此更新状态是其核心任务之一。在 Redux 中,所有状态更新都由 dispatch action 触发action 只是一个 JavaScript 对象,其中包含有关已发生的 action 事件的信息。Redux store 接收这些 action 对象然后更新相应的状态。有时Redux action 也会携带一些数据。例如,在用户登录后携带用户名,虽然数据是可选的,但 action 必须带有<code>type</code>属性,该属性表示此 action 的类型。
我们可以将 Redux action 视为信使,将有关应用程序中发生的事件信息提供给 Redux store然后 store 根据发生的 action 进行状态的更新。
</section>
## Instructions
<section id='instructions'>
编写 Redux action 就像声明具有 type 属性的对象一样简单,声明一个对象<code>action</code>并为它设置一个属性<code>type</code>,并将他的值设置成字符串<code>'LOGIN'</code>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 应该有一个 action 对象。
testString: assert((function() { return typeof action === 'object' })());
- text: 该 action 的值应该为<code>LOGIN</code>
testString: assert((function() { return action.type === 'LOGIN' })());
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='jsx-seed'>
```jsx
// 在此处定义 action
```
</div>
</section>
## Solution
<section id='solution'>
```js
const action = {
type: 'LOGIN'
}
```
</section>