今天在用React + Redux开发,发现一个问题

在执行dispatch(action)的时候报UncaughtTypeError:dispatchisnotafunction!!求大侠提供解决方法的思路。我debug的... 在执行 dispatch(action)的时候 报Uncaught TypeError: dispatch is not a function!!求大侠提供解决方法的思路。我debug的时候dispatch值是undefine. 展开
 我来答
超级二月师兄
2016-10-27 · TA获得超过250个赞
知道答主
回答量:21
采纳率:0%
帮助的人:13.2万
展开全部

可能是你的action没有connect到组件上,没有把这个方法传过来。

1.参考我写的一个方案

https://github.com/hyy1115/react-redux-book

@connect(
    state => state,
    dispatch => bindActionCreators(action, dispatch)
)

2.根据redux文档的方案

http://cn.redux.js.org/docs/react-redux/quick-start.html

// 哪些 action 创建函数是我们想要通过 props 获取的?
function mapDispatchToProps(dispatch) {
  return {
    onIncrement: () => dispatch(increment())
  };
}

export default connect(
  mapDispatchToProps
)(Counter);
追问
我现在写了一个登陆的组件,组件名字是startLogin,我把dispatch写到这个组件中可能是错误原因,module.exports = startLogin;我想在写一个登陆的JS文件,然后在写export default connect(mapStateToProps)(XXX)这些代码,我想问,我点击登陆之后,我该怎么调用之后我写的这个文件,我想了好长时间了。大神,能给点儿思路么?
追答
import或者require这个js文件,要定义一个导出的变量名,登录组件中,当点击了按钮,绑定一个点击事件,在这个事件中执行你导入的js文件名,调用有关的方法去执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式