Если вы внимательно изучите файл определения типа index.d.ts
из React.Component
(команда + щелкните, чтобы открыть)
node_modules/@types/react/index.d.ts
Вы обнаружите, что React Component
принимает второй, но он не используется как Реквизит , вместо этого Состояние .
class Component<P, S> {
...
Если вы хотите связать диспетчеризацию с вашим Компонентом, связать с реквизитами .
Вы можете найти конкретную реализацию c, как показано ниже:
Обратитесь к документу redux: typing-the-connect-upper-order-component
import { connect, ConnectedProps } from 'react-redux'
interface RootState {
}
const mapState = (state: RootState) => ({
})
const mapDispatch = {
}
const connector = connect(mapState, mapDispatch)
type PropsFromRedux = ConnectedProps<typeof connector>
type Props = PropsFromRedux & {
backgroundColor: string
}
const MyComponent = (props: Props) => (
<div style={{ backgroundColor: props.backgroundColor }}>
<button onClick={props.toggleOn}>
Toggle is {props.isOn ? 'ON' : 'OFF'}
</button>
</div>
)
export default connector(MyComponent)