Redux функция 'connect' с Typescript - PullRequest
0 голосов
/ 14 мая 2019

Я пишу приложение React Native с использованием Redux и Typescript.Я смотрел на код других людей (который я не могу передать дословно), и когда они используют функцию connect, это выглядит так:

export default connect<a, b, c, d>(
  state => ({
  ...
  }),
  dispatch => bindActionCreators({
  ...
  }, dispatch)
)(<Component name>)

Может кто-нибудь объяснить, что использованиеa, b, c, d параметры есть?Я знаю, что это касается обобщений Typescript, но кто-нибудь может дать мне более глубокое понимание того, как connect использует их?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Глядя на это, он синтаксически очень многословен.

Обобщения для соединения подразумевают, что они выводятся, а не проходят статически (хотя есть некоторые исключения.

bindActionCreators также больше не требуется, так каквсе, что передается в качестве значений объекта второго аргумента, будет автоматически связано с диспетчеризацией

IE. Приведенный выше код можно упростить до ...

const mapStateToProps(state: IGlobalState) => {
     return {
        // add things you want from your state here.
     }

} // if you don't want anything from your state you can pass null.

export const withState = connect(mapStateToProps, {addTodo: TodoActions.add})(ComponentName)

export const withNoState = connect(null, {addTodo: TodoActions.add})(ComponentName)
export const withNeither = connect()(ComponentName) // at first glance looks useless but this will actually give you access to 'dispatch' inside your component.

0 голосов
/ 14 мая 2019

Вот подробности метода соединения с интерфейсами ite:

<TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = {}>(
        mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
        mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>
    ): InferableComponentEnhancerWithProps<TStateProps & TDispatchProps, TOwnProps>;

Для получения более подробной информации посетите машинописный-и-реагировать-редукс-подключить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...