56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
![]() |
---
|
|||
|
id: 5a24c314108439a4d403614d
|
|||
|
title: 定義一個 Redux Action
|
|||
|
challengeType: 6
|
|||
|
forumTopicId: 301440
|
|||
|
dashedName: define-a-redux-action
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
由於 Redux 是一個狀態管理框架,因此更新狀態是其核心任務之一。 在 Redux 中,所有狀態更新都由 dispatch action 觸發, action 只是一個 JavaScript 對象,其中包含有關已發生的 action 事件的信息。 Redux store 接收這些 action 對象,然後更新相應的狀態。 有時,Redux action 也會攜帶一些數據。 例如,在用戶登錄後攜帶用戶名, 雖然數據是可選的,但 action 必須帶有 `type` 屬性,該屬性表示此 action 的類型。
|
|||
|
|
|||
|
我們可以將 Redux action 視爲信使,將有關應用程序中發生的事件信息提供給 Redux store, 然後 store 根據發生的 action 進行狀態的更新。
|
|||
|
|
|||
|
# --instructions--
|
|||
|
|
|||
|
編寫 Redux action 就像聲明具有 type 屬性的對象一樣簡單, 聲明一個對象 `action` 併爲它設置一個屬性 `type`,並將它的值設置成字符串`'LOGIN'`。
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`action` 對象應該存在。
|
|||
|
|
|||
|
```js
|
|||
|
assert(
|
|||
|
(function () {
|
|||
|
return typeof action === 'object';
|
|||
|
})()
|
|||
|
);
|
|||
|
```
|
|||
|
|
|||
|
`action` 對象應該有一個值爲 `LOGIN` 的 `type` 屬性。
|
|||
|
|
|||
|
```js
|
|||
|
assert(
|
|||
|
(function () {
|
|||
|
return action.type === 'LOGIN';
|
|||
|
})()
|
|||
|
);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
// Define an action here:
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
const action = {
|
|||
|
type: 'LOGIN'
|
|||
|
}
|
|||
|
```
|