2017-01-27 108 views
2

我是新来的react-redux,我正在使用react-thunk中间件。每当我尝试运行我的动作创建者时(通过按下我的按钮),我都会收到错误“Uncaught TypeError:dispatch不是函数”。任何人都知道发生了什么事?调度不是函数TypeError

的src /动作/ index.js

function editUserName (newUserName) { 
    return { 
     type: 'CHANGE_USER_NAME', 
     newUserName: newUserName 
    } 
} 

export function editUserNameDelegate() { 
    return function (dispatch, getState) { 
     return dispatch(editUserName("thunkUser")) 
    } 
} 

的src /集装箱/ admin.js

import { editUserNameDelegate } from '../actions/index' 
... 
<input type="button" onClick={ editUserNameDelegate() } value="edit UserName" /> 
+0

return function(dispatch,getState){ return dispatch(editUserName(“thunkUser”)) }在这个函数中,你已经将dispatch作为参数,并在第二行作为函数处理? – Shubhranshu

回答

2

你执行的rendereditUserNameDelegate功能,而不是把它当作onClick处理。您需要改为onClick={editUserNameDelegate}

另外,如果你是这样写的,你需要确保函数在你调用的时候被调度。你可以这样做:

export default connect(null, {editUserNameDelegate})(MyComponent)

再经过onClick={this.props.editUserNameDelegate}在渲染功能。

相关问题