Реагировать на передачу Redux реквизитору другого компонента - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть 2 компонента, ReviewList и Review. ReviewList имеет список компонентов Review, а для каждого компонента Review есть свойство обзор .

Я хочу провести некоторую логическую работу над компонентом, поэтому я хочу создать Enhancer ( Review.enhancer.js ) для выполнения этого типа работы (я хочу, чтобы компонент Review, чтобы быть фиктивным компонентом).

Я использую act-redux , а на своем Review.enhancer я использую метод соединения, чтобы получить реквизит ({обзор}), но у меня ничего нет. Я новичок в реакции и избыточности.

1 Ответ

0 голосов
/ 08 ноября 2018

Прежде всего, вам не обязательно нужна функция connect, если вы уже предоставляете данные, передавая их как реквизит энхансеру. В этом случае вы также можете использовать библиотеку recompose для применения логики к данным. Однако в большинстве случаев вам все еще нужно отправлять действия, так что функция connect из react-redux все равно будет необходима.

Когда реквизиты передаются компоненту, обернутому функцией connect, они не передаются автоматически. Чтобы сделать эти реквизиты доступными для обернутого компонента, необходимо сопоставить их со вторым аргументом в функции mapStateToProps.

Review.enhancer.js

const mapStateToProps =  (state, ownProps) => {
    return { 
        review: ownProps.review,
    };
};

export default connect(mapStateToProps, null)(Review);

Теперь только заверенная версия передается обернутому компоненту. Однако вам следует избегать этого, поскольку он связывает энхансер с компонентом контейнера.

Обратите внимание, что если вы хотите передать все реквизит завернутым компонент, вы можете опустить скобки от стрелки функция и использовать неявный возврат.

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