5

私のreactjs-universalコンポーネントで、私はこれを書きました:

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

export default connect(mapStateToProps)(SearchForm)

同じコンポーネントで、次のようなアクションをディスパッチしたいと思います:

 store.dispatch({type: 'SHOWDETAIL', data: 'hi'});

これを実行すると、次のようになります。

Uncaught TypeError: _create2.default.dispatch is not a function

アクションをディスパッチできるように、コンポーネントでストアへの参照を取得することはできますか?

4

2 に答える 2

3

connectmapStateToPropsストアではなく状態を引数として呼び出します。

あなたの場合、ストアへの参照は必要ないようです。接続を使用して、小道具へのディスパッチをマップするだけで十分です。

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

const mapDispatchToProps = dispatch => {
  return {
    action : () => dispatch({
      type : 'ACTION_NAME'
    })
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(SearchForm)

本当にストアが必要な場合は、ストアを作成した場所からエクスポートし、必要な場所にインポートする必要がありますconnect。ストアを渡すことは目的ではありません。

于 2017-07-04T13:08:14.630 に答える