如何将调度函数引用和动作创建者作为任何连接组件内的道具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将调度函数引用和动作创建者作为任何连接组件内的道具相关的知识,希望对你有一定的参考价值。

我们在连接组件中得到调度函数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);

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

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

案例2.没有派遣进入道具https://prnt.sc/ne0djb

那么请帮助我为什么我没有在案例2中获得调度功能?

答案

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

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

以上是关于如何将调度函数引用和动作创建者作为任何连接组件内的道具的主要内容,如果未能解决你的问题,请参考以下文章

从组件传递值作为参数状态还是访问动作创建者中的状态?

当组件只需要调度一个动作创建者时使用啥模式?

如何一个接一个地调度两个异步 redux 动作?

taro refs引用

如何在 Jest 和 Enzyme 中执行无状态组件内的函数以进行测试

React Native Redux:动作分派,返回结果