【发布时间】:2020-01-19 21:05:13
【问题描述】:
我正在尝试开始在 React + TypeScript 中使用 Redux,因此我遵循 Redux Toolkit 的教程并尝试在示例应用中实现它。
我在输入有关 store 和 mappStateToProps 函数参数时遇到很多困难。
我用切片配置了 store,如下:
import { configureStore } from '@reduxjs/toolkit'
import linksReducer from '../features/links/linksSlice'
const store = configureStore({
reducer: {
links: linksReducer,
},
})
export default store
export type AppStore = typeof store
我像这样连接了一个组件:
import React from 'react'
import { connect, ConnectedProps } from 'react-redux'
import { AppStore } from '../../features/appStore'
import { deleteLink } from '../../features/links/linksSlice'
import LinkCard from './LinkCard'
import Link from '../../models/Link'
import EmptyList from './EmptyList'
const mapStateToProps = (state: any) => ({
links: state.links,
})
const mapDispatchToProps = { deleteLink }
const connector = connect(mapStateToProps, mapDispatchToProps)
const LinksGrid = (props: ConnectedProps<typeof connector>) => {
// ...
}
export default connector(LinksGrid)
如您所见,我使用any 类型作为mapStateToProps 函数的第一个参数,因为我不知道应该如何键入它。使用any,我运行应用程序没有问题,所以我假设我只有打字问题。
RTK的官方文档只给出了一个使用combineReducers而不是configureStore的例子,它使用了TS的ReturnType<T>,它只能在函数上工作,当然store变量不是函数所以它不工作。
我也阅读了 Redux 和 React Redux 文档,但我仍然不知道该怎么做。
我确信这实际上很简单,但我在这里......谁能帮我打字?
谢谢:)
【问题讨论】:
标签: reactjs typescript redux