Реагируйте на редукцию со стилями и без - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь использовать connect in redux, реагирую как

Connect (mapstate .., mapdis ..) (withstyles (dashboardstyle) (dashboard)

Выше работает нормально, но мне нужнотакже добавить withRouter. Ниже изменение дает ошибку Connect (mapstate .., mapdis ..) (withstyles (dashboardstyle), withrouter (dashboard))

Всякий раз, когда я добавляю это, выдает исключение, такое как не может использовать класс какЛюбые идеи, как это можно исправить

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Какое возвращаемое значение withStyles(styles)?Я подозреваю, что это «Компонент высшего порядка» (HOC), который представляет собой функцию, которая ожидает передачи компонента React для переноса и возвращает компонент React.Если это так, то вы действительно хотите, чтобы ваш вызов выглядел следующим образом:

export default withStyles(styles)(
    connect(mapStateToProps, mapDispatchToProps)(withRouter(Dashboard))
)

Этот код довольно уродливый, и быстро ухудшится, когда вы добавите больше HOC, вот почему Рекомендовать предложение - гораздо лучший способ.(Но я хотел бы добавить еще немного контекста, чтобы читатели понимали, что вызывает проблему в ОП.)

0 голосов
/ 15 октября 2018

Вам нужно будет установить состав:

npm i -s recompose

Тогда в вашем компоненте:

import compose from 'recompose/compose'


export default compose(
   withStyles(styles),
   connect(mapStateToProps, mapDispatchToProps)
)(withRouter(Dashboard))
...