2016-10-27 20 views
2

私はUserを追加しようとしていますが、今のところ私は呼び出しを試みているだけなので、データはありませんこれまでに渡った。 Mycontainerは次のようになります。私のユーザーのための減速でReact:Uncaught TypeErrorで関数を呼び出す:...は関数ではありません(...)

ユーザーadd.js

import React, {Component} from 'react'; 
import {bindActionCreators} from 'redux'; 
import {connect} from 'react-redux'; 
import {createUser} from '../actions/index' 

class UserCreate extends Component { 
    render() { 
     return (
      <div> 
       <h2> Add User </h2> 

       <table className="userTable"> 
       <tbody> 
       <tr> 
        <td>First Name:</td> 
        <td>Last Name:</td> 
       </tr> 

       <tr> 
        <td> 
         <input type="text" 
          placeholder="Hello!" 
          value="Val" /> 
        </td> 
        <td> 
         <input type="text" 
          placeholder="Hello!" 
          value="Val" /> 
        </td> 
       </tr> 
       </tbody> 
       </table> 


       <button onClick={() =>this.props.createUser()}>Submit</button> 

      </div> 
     ); 
    } 
} 

function mapStateToProps(state) { 
    return { 
     user: state.activeUser 
    }; 
} 

function matchDispatchToProps(dispatch){ 
    return bindActionCreators({createUser: createUser}, dispatch); 
} 

export default connect(mapStateToProps)(UserCreate); 

、私は私のswitch文に対応するケースを追加しました:

switch (action.type) { 
    case 'USER_DELETED': 
     return state.filter(user => user.id !== action.userIdToDelete); 
    case 'USER_CREATED': 
     return state; 
} 

もちろんI私のアクションクリエイターにもこのような行動を加えました

export const createUser =() => { 
    console.log("You created user: XX "); 
    return { 
     type: 'USER_CREATED', 
     payload: {} 
    } 
}; 

しかし、それは私に与えます:

Uncaught TypeError: _this2.props.createUser is not a function(…)

私はこれに非常に新しいですが、すでに数回ここに投稿していますが(他の質問もありますが)何が間違っているのか分かりません。他のコードスニペットが必要な場合は教えてください。投稿されたコードが不完全であることを知っています。ちょうどボタンが関数などを呼び出すことを念頭に置いておいてください。ユーザーの実際の作成は今は別の問題です。

+0

、おそらく私が気付いていないのだと、これにReduxのアスペクトがあります。 (私はReduxに慣れていません) –

答えて

2

matchDispatchToProps(これはmapDispatchToProps?である必要があります)はどこにも使用されていません。

は、あなたの接続にそれを追加する必要があります。私は私のコメントを削除

export default connect(mapStateToProps, mapDispatchToProps)(UserCreate); 
+0

これは 'matchDispatchToProps'と呼ばれていますが、実際には接続に追加しませんでした。これはエラーだったようです!ありがとう –

+0

ああ私はOPを訂正しようとしているのを自分で知っていた、私は 'match' =>' map'について話していた、 'To' =>' to'は私の部分のエラーだった – narvoxx

+0

@narvoxx:Ah !!私は 'match' /' map'を完全に読んでいます! :-)ありがとう! –

関連する問題