javascript - React 中类组件的 react-redux 的 useDispatch 钩子的替代方案
问题描述
react-redux
库已经提出useDispatch
,它是一个钩子,只能在函数组件中使用。
import React from 'react';
import {useDispatch} from 'react-redux';
import {action} from './actions';
const funComp = () => {
const dispatch = useDispatch();
const performAction = () => { dispatch(action()) }
return <button onClick={performAction}> Dispatch Action </button>
}
这简化了功能组件的许多样板代码,我们可以在类组件中使用类似的东西吗?
解决方案
类组件应该使用React-Redux connect
API与 store 交互:
import React from 'react';
import {useDispatch} from 'react-redux';
import {action} from './actions';
const mapState = state => {
return {
todos: state.todos
}
};
const mapDispatch = {action};
class MyClassComponent extends React.Component {
render() {
const {todos} = this.props; // use to render something
return <button onClick={this.props.action}> Dispatch Action </button>
}
}
export default connect(mapState, mapDispatch)(MyClassComponent);
推荐阅读
- android - 如何在 Kotlin 中让多个 TextView 每次都显示已编辑的 SharedPreference 的值
- python - scatter3D() 函数 ValueError:形状不匹配:无法将对象广播到单个形状
- sql - 在 sybase ASA11 中显示最近 1 小时的记录数据
- python - 来自具有不同长度的列表列表的 NumPy 数组(填充)
- node.js - 如何从nodejs中的redis slave读取数据
- java - AWS DynamoDb 使用 DynamoDbEnhancedClient 读取 BatchRead
- python-3.x - ImageMagick和Wand之间连接组件的输出不同?
- c++ - 在没有枚举和开关的多个向量之一上调用函数
- node.js - 如何从 Mongo 文档中仅检索 N 个子文档
- azure - 如何使用 Ansible 从 .vhd 文件创建 Azure 映像