2016-11-21 3 views
4

Прежде всего, я очень новичок в TS, React & Redux, извините, если это очевидный вопрос.Тип, редукция и соединение

Я пытаюсь изменить this example, чтобы получить форму для загрузки некоторой информации. Он использует redux-form.

Я пытаюсь выяснить, как позвонить connect и redux-form в то же время при экспорте компонента. Сейчас это выглядит так:

class UserForm extends React.Component<IUserProps, void> { .. } 

export default ReduxForm.reduxForm({ 
    form: 'user', 
    fields: [ 
    'userName', 
    'password', 
    'firstName', 
    'lastName', 
    'email' 
    ], 
    validate: UserForm.validate, 
})(UserForm); 

Примеры, я видел without TS выглядеть следующим образом:

class MyForm extends Component {} 
MyForm = reduxForm(config)(MyForm) 
MyForm = connect(mapStateToProps, mapDispatchToProps)(MyForm) 
export default MyForm 

Но если я пытаюсь сделать то же самое в TS, я получаю ошибку TS2300: продублировать идентификатор ,

Я также пытался использовать декоратор @connect, но я не мог заставить его работать (или найти какой-либо рабочий пример в Интернете).

ответ

3

Можете ли вы просто связать их?

class UserForm extends React.Component<IUserProps, void> { .. } 

export default connect(mapStateToProps,mapDispatchToProps) 
    (ReduxForm.reduxForm({ 
    form: 'user', 
    fields: [ 
    'userName', 
    'password', 
    'firstName', 
    'lastName', 
    'email' 
    ], 
    validate: UserForm.validate, 
})(UserForm)); 
2

не исправить, но проблема может быть подавлен путем литья в any

connect(mapStateToProps, mapDispatchToProps)(MyForm as any)

Смежные вопросы