簡體   English   中英

反應redux bindActionCreators的用法

[英]React redux bindActionCreators usage

我在操作目錄下有一個文件,它是root.js。 Root.js將在內部編譯所有其他動作,我將其與bindActionCreators綁定

export const all = (store) => {
    AUTH: bindActionCreators(AUTH.actions, store.dispatch),
    ....: .....
}

據我了解,bindActionCreators是用於自動分派動作的目的。 如果是這種情況,那么我該如何從智能組件訪問它?

我看到了諸如dispatch(action)之類的東西。 但是由於現在我已經在全球范圍內綁定了它,所以我認為我不再需要指定調度了。 我該怎么做,還是我誤解了任何部分? 謝謝

bindActionCreators將創建一個動作對象,每個動作對象都包裝在分派中。
最好將它們作為ref傳遞給不知道有關reduxdispatch未連接組件。
引用DOCS

bindActionCreators的唯一用例是,當您要將一些動作創建者傳遞給一個不了解Redux的組件,並且您不想將調度或Redux存儲傳遞給該組件時。

因此,如果您希望連接的組件將動作創建者傳遞給啞組件,則可以通過bindActionCreators設置對象,並將其與道具一起傳遞給啞組件。
例:

const myActionCreators = bindActionCreators(Auth.myActions, dispatch)
<DumbComponent {...myActionCreators} />

推薦的方法是讓每個連接的組件文件導入所需的操作創建者,並使用connect支持的“對象簡寫”:

import {addTodo, toggleTodo} from "./todoActions";

const actions = {addTodo, toggleTodo};

export default connect(null, actions)(TodoList);
// each TodoList instance now has this.props.addTodo and
// this.props.toggleTodo, which will dispatch actions when called.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM