= useSelector;
// dispatch hook => useAppDispatch
export type AppDispatch = typeof store.dispatch;
export const useAppDispatch: () => AppDispatch = useDispatch;
export default store;
```
```typescript
import React, { Suspense } from "react";
import routes from "./router";
import { Link, useRoutes } from "react-router-dom";
import { shallowEqual, useSelector } from "react-redux";
import { useAppSelector } from "./store";
// import { RootState } from "./store";
function App() {
/* const { count } = useSelector((state) => {
return {
count: state.counter.count
}
}, shallowEqual) */
const { count } = useAppSelector(state => {
return {
count: state.counter.count
}
}, shallowEqual)
return (
发现音乐
我的音乐
关注
下载客户端
计数;{count}
loading... }>
{/* 路由 */}
{useRoutes(routes)}
);
}
export default App;
```
参考:[react-redux](https://cn.redux.js.org/tutorials/typescript-quick-start)
# Axios 封装
# 环境变量
.env.production .env.development