Redux - 调度在行动中未定义
Redux - dispatch is undefined in action
我是 redux 的新手,但我有一个我不明白的问题,它无法解决它。
问题是,当我想在我的动作中调度时,我遇到了一个错误:
dispatch is not a function
是的,他是未定义的,这就是重点,为什么他是未定义的?
export const clearError = dispatch => {
console.log('clear error')
console.log(dispatch)
dispatch({
type: 'CLEAR_ERROR'
})
}
我从 Main.js 调用 clearError 操作,也许是我的初始化不正确,但我尝试了几种方法,比如 bindActionCreators...
Main.js(我如何通过 connect 传递 props 和 dispatch)
const mapStateToProps = (state) => state
const mapDispatchToProps = {
clearError: clearError
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(Main)
我真的很困惑,因为在其他组件中我使用了其他两个以相同方式制作的动作,一切正常...
我不知道它是否可以帮助您理解问题的根源,但我向您展示了我如何配置商店以在 [=50] 中调用 configureStore() =].
import {applyMiddleware, createStore} from "redux";
import thunk from 'redux-thunk';
import reducers from './reducers'
const configureStore = () => {
const middleware = [thunk]
return createStore(reducers, applyMiddleware(...middleware))
}
export default configureStore
我正在听取有关 redux 的所有帮助和建议以及使用它的最佳方式!
真的感谢你的阅读❤️
问题是您没有从动作创建者返回一个函数,其中 dispatch
作为参数之一:
export const clearError = () => dispatch => {
在幕后,当您将动作创建者传递给 mapDispatchToProps 时,Redux "maps" 将参数分派给动作创建者,然后将映射的动作创建者分配给组件属性。
这也是为什么你必须调用 this.props.clearError()
而不是 clearError()
.
我是 redux 的新手,但我有一个我不明白的问题,它无法解决它。
问题是,当我想在我的动作中调度时,我遇到了一个错误:
dispatch is not a function
是的,他是未定义的,这就是重点,为什么他是未定义的?
export const clearError = dispatch => {
console.log('clear error')
console.log(dispatch)
dispatch({
type: 'CLEAR_ERROR'
})
}
我从 Main.js 调用 clearError 操作,也许是我的初始化不正确,但我尝试了几种方法,比如 bindActionCreators...
Main.js(我如何通过 connect 传递 props 和 dispatch)
const mapStateToProps = (state) => state
const mapDispatchToProps = {
clearError: clearError
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(Main)
我真的很困惑,因为在其他组件中我使用了其他两个以相同方式制作的动作,一切正常...
我不知道它是否可以帮助您理解问题的根源,但我向您展示了我如何配置商店以在 [=50] 中调用 configureStore() =].
import {applyMiddleware, createStore} from "redux";
import thunk from 'redux-thunk';
import reducers from './reducers'
const configureStore = () => {
const middleware = [thunk]
return createStore(reducers, applyMiddleware(...middleware))
}
export default configureStore
我正在听取有关 redux 的所有帮助和建议以及使用它的最佳方式!
真的感谢你的阅读❤️
问题是您没有从动作创建者返回一个函数,其中 dispatch
作为参数之一:
export const clearError = () => dispatch => {
在幕后,当您将动作创建者传递给 mapDispatchToProps 时,Redux "maps" 将参数分派给动作创建者,然后将映射的动作创建者分配给组件属性。
这也是为什么你必须调用 this.props.clearError()
而不是 clearError()
.