После обновления до последней версии 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, если родительский объект уже размонтирован (таким образом, изменение проповеди для дочерних элементов не требуется, поскольку оно все равно будет размонтировано).