如何在任何连接的组件中获取调度功能参考和动作创建者作为道具

时间:2019-04-19 06:41:41

标签: reactjs redux react-redux

我们在连接的组件中获得了调度函数ref,但是当我们在connect函数中使用action creator参数时,它将不会像以前那样返回调度函数。

情况1。仅具有连接功能的第一个参数。

import React, { Component } from 'react';
import { connect } from 'react-redux';

class App extends Component {
  render() {
    console.log('this.props',this.props)
    return (
      <div className="App">
        App
      </div>
    );
  }
}
const mapStateToProps = (state) => {
  return state
}
export default connect(mapStateToProps)(App);

情况2。也使用connect的第二个参数

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

class App extends Component {
  render() {
    console.log('this.props',this.props)
    return (
      <div className="App">
        App
      </div>
    );
  }
}
const mapStateToProps = (state) => {
  return state
}
export default connect(mapStateToProps,{ setData })(App);

我希望在第二种情况下,派发函数ref也应列在props中,但不会发生。

控制台输出: 情况1.调度显示在道具https://prnt.sc/ne0fpb

情况2。道具https://prnt.sc/ne0djb中没有派遣进入

所以请帮助我为什么我在第二种情况下没有得到调度功能?

1 个答案:

答案 0 :(得分:1)

第二个connect参数(mapDispatchToProps)默认为dispatch => ({ dispatch })函数。指定默认值时不应用。

由于mapDispatchToProps用于提供所有必需的调度程序功能作为组件道具,因此不需要dispatch道具。