我試圖使用react-redux-loading-bar來顯示從API服務器獲取數據期間的加載欄,我沒有使用承諾中間件,所以我決定不使用它,該示例說做到這一點調度沒有定義在我的函數使用react和redux
import { showLoading, hideLoading } from 'react-redux-loading-bar'
dispatch(showLoading())
// do long running stuff
dispatch(hideLoading())
它給了我這個。
Uncaught ReferenceError: dispatch is not defined
我曾與其他圖書館類似的問題而放棄了那個時候,這個時候我想真正瞭解如何工作的,所以任何信息是極大的讚賞。下面是導致錯誤,speicifc函數和類名剝離的代碼。
import React from 'react'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import { showLoading, hideLoading } from 'react-redux-loading-bar'
import * as xxxxxActions from '../../actions/xxxxx'
class xxxxxx extends React.Component {
constructor(props) {
super(props)
this.handleclick = this.handleclick.bind(this)
}
handleclick(){
dispatch(showLoading())
asynchronousGetFunction(target_url, function (data) {
dispatch(hideLoading())
})
}
render() {
return <li onClick={this.handleclick}>yyyyyyy</li>
}
}
function mapStateToProps(state){
return {
}
}
function mapDispatchToProps(dispatch, state) {
return {
xxxxxActions: bindActionCreators(xxxxxActions, dispatch)
};
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(xxxxxx)
當您使用bindActionCreators時,每個動作創建者都會被包裝到一個調度調用中,以便可以使用道具直接調用它們。因此,派遣,在你的情況下,使用像this.props.xxxxxActions.yourActionToDispatch() – Dev
看到這個問題https://stackoverflow.com/questions/41670146/why-is-there-no-need-for-a- mapdispatchtoprops-function-here/41671030#41671030 –