<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## action 定義: Action 是把數據從應用(譯者注:這里之所以不叫 view 是因為這些數據有可能是服務器響應,用戶輸入或其它非 view 的數據 )傳到 `store` 的有效載荷。它是 `store` 數據的唯一來源。一般來說你會通過 `store.dispatch()` 將 `action` 傳到 `store`。 添加新的todo任務的`action`是這樣的: ~~~ // 動作的常量名字 const ADD_TODO = 'ADD_TODO' // 一個Action 對象 { type: ADD_TODO, // 對應常量名字 text: 'Build my first Redux App' // 除了 type 字段外,action 對象的結構完全由你自己決定。 } ~~~ 上面是一個Action對象,描述動作的對象,還有一個概念叫Action創建函數,兩者不同,別混淆。 先來寫`action`創建函數。通過`action`創建函數,就可以創建一個`action`~ `src/redux/actions/counter.js` ~~~ /* action */ export const INCREMENT = "counter/INCREMENT" // 只要保證reducer判斷和這里定義的保持一致就可以。 export const DECREMENT = "counter/DECREMENT" // 這里可以隨便定義。 export const RESET = "counter/RESET" // 例如 a / b / c export const ADD_TODO = "ADD_TODO" export function increment() { // 創建一個Action(下同),除了 type 字段外,action 對象的結構完全由你自己決定。 return { type: INCREMENT } } export function decrement() { return { type: DECREMENT } } export function reset() { return { type: RESET } } export function addTodo(text) { return { type: ADD_TODO, text } } ~~~ 通常在[傳統的 Flux](http://facebook.github.io/flux)開發中,在調用`action`創建函數時,需要手動觸發一個`dispatch`,像這樣: ~~~ function addTodoWithDispatch(text) { const action = { type: ADD_TODO, text } dispatch(action) } ~~~ 不同的是,Redux 中只需把 `action` 創建函數返回的`action`對象傳給 `dispatch()` 方法即可發起一次 `dispatch` 過程: ~~~ dispatch(increment()) dispatch(addTodo(text)) ~~~ 或者創建一個 被綁定的 action 創建函數 來自動 dispatch: ~~~ const boundIncrement = () => dispatch(increment()) const boundAddTodo = text => dispatch(addTodo(text)) // 然后需要調用它們: boundIncrement() boundAddTodo(text) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看