我有一個使用React和Redux的項目。我有多個React組件,需要使用一種常用的方法,它會從Redux Store中抓取數據,構建請求對象並向服務器發出休息請求。適當反應元件使用情況
我不想寫這樣做的方法不止一次。那麼,這個方法應該是它自己的React組件,還是我應該把它放在一個通用的JavaScript文件中?如果您不渲染任何JSX,我不確定組件的要點。另一方面,如果我將它放在一個通用的JavaScript文件中,是否可以將redux連接到該文件以訪問存儲中的狀態?
在此先感謝。
我有一個使用React和Redux的項目。我有多個React組件,需要使用一種常用的方法,它會從Redux Store中抓取數據,構建請求對象並向服務器發出休息請求。適當反應元件使用情況
我不想寫這樣做的方法不止一次。那麼,這個方法應該是它自己的React組件,還是我應該把它放在一個通用的JavaScript文件中?如果您不渲染任何JSX,我不確定組件的要點。另一方面,如果我將它放在一個通用的JavaScript文件中,是否可以將redux連接到該文件以訪問存儲中的狀態?
在此先感謝。
添加redux-thunk
中間件可讓您調度功能,然後訪問dispatch
和getState()
。從那裏你可以做任何你想做的事情,比如使用選擇器函數來提取你需要的狀態,並進行AJAX調用。形實轉換動作創作者可以傳遞給組件的道具,包括他們結合自動調度:
function someThunk() {
return (dispatch, getState) => {
const state = getState();
// do anything you want here
}
}
const actions = {doStuffOnClick : someThunk};
export default connect(mapState, actions)(MyComponent);
更多資源:
redux-thunk
在其回購在https://github.com/gaearon/redux-thunk描述。它不應該是一個組件,因爲如你所說,它沒有視覺方面。
創建一個新的動作,即可做到這一點,並從您需要的任何地方派發動作。此操作可以檢查商店以查看操作是否已經發生,然後什麼都不做(或刷新)。
使用import {createStore} from 'redux'
的模塊創建您的商店。將操作模塊中創建的商店導入並使用store.getState()檢查商店的當前狀態。
一致認爲,當我們需要訪問Redux狀態的常用方法時,thunk看起來會起作用。偉大的信息知道。但是,我的同事提醒我,我們可以用這個來渲染JSX。這是'提交'按鈕。所以,我認爲*畢竟這個例子中的組件是有意義的。 – nikotromus