Предотвращение обновления дочерних объектов, если родительский компонент отключен - PullRequest
2 голосов
/ 10 апреля 2019

После обновления до последней версии response-redux (v7) у меня возникли проблемы с обновлениями prop. Вот пример:

const shouldRender = WrappedComponent => props => props.shouldRender ? <WrappedComponent {...props} /> : null

const MyComponent = compose(
  connect(state => ({ shouldRender: Boolean(state.page) })),
  shouldRender,
  connect(state => ({ title: state.page.title }))
)(MyBaseComponent)

<MyComponent />

store.dispatch({ type: 'CLEAR_STATE' }) // => Sets state.page to null

В v5 версии response-redux, когда state.page сбрасывается в исходное состояние (ноль), HOC shouldRender будет отображать ноль вместо компонента и, таким образом, не будет пытаться получить state.page.title в следующая строка.

После обновления до v7, тот же сценарий все еще вызывает state.page.title и выдает ошибку (не может получить заголовок undefined).

Самое простое решение - не полагаться на родительский HOC и не защищать подпорки (title: state.page && state.page.title, но это повлечет за собой множество элементов защиты повсюду в моем коде.

Как я могу предотвратить возникновение последнего соединения mapStateToProps, если родительский объект уже размонтирован (таким образом, изменение проповеди для дочерних элементов не требуется, поскольку оно все равно будет размонтировано).

1 Ответ

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

Я исправил это путем обновления до 7.0.3

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