reactjs - 在类组件中使用 TypeScript 和 Redux 进行编程式 React Router 导航
问题描述
我总共花了大约 3 个小时寻找关于如何在已经连接到 Redux 的 Typescript React 类组件中以编程方式使用 React Router 导航的正确答案。它都不起作用,Typescript 给出了各种类型的错误。
我确实只找到了部分解决方案,所以我正在创建这个线程并回答它以供有类似问题但仍然无法找到答案的人将来使用。
非常感谢:
解决方案
以下是所有重要的核心部分,它们允许您使用 Typescript 在类组件内连接 React Router、Redux。我希望这对你有所帮助。
import { withRouter, RouteComponentProps } from "react-router-dom";
import { connect, ConnectedProps } from "react-redux";
import { RootState } from "../reducers/rootReducer"; // your custom file
const mapStateToProps = (state: RootState) => {return {...}}; // RootState is your main state from Redux
const mapDispatchToProps = (dispatch) => {return{...}};
const connector = connect(mapStateToProps, mapDispatchToProps);
type PropsFromRedux = ConnectedProps<typeof connector>;
type MyProps = PropsFromRedux & RouteComponentProps & {...}; // Custom props goes here
class YourReactClassComponent extends Component<MyProps, MyState> {...}
export default withRouter(connector(YourReactClassComponent));
推荐阅读
- ios - 什么时候选择 tableviewcell 滚动 collectionviewcell
- javascript - 如何使用动态数据强制选择 html 标记中的选定值
- mysql - 如何在 mysql 中删除匹配条目数低于特定数字的结果
- sql - 日期时间字段中的 SQL 总和值
- c - C:如果我们不知道长度,如何用 fgets() 填充表格?
- spring-boot - 如何使用 spring restdocs 记录包含 JSON 对象的请求正文
- github - Travis CI 发布到 GitHub 不包含文件
- oracle - 传递给 SQL*Plus 脚本的参数会覆盖调用它的脚本的参数
- camera - 在 Tinker OS V2.0.8 中找不到 gstreamer 的 gst/video/colorbalance.h
- android - 单击另一个按钮后如何处理按钮单击