Мне интересно, есть ли шаблон, позволяющий мне предотвратить пересчет HOC на основе некоторого условия, вот пример:
const DumbComponent = () => <button>Click me<button/>;
// Third party HOC, that I can't modify
const SmartComponent = Component => class extends Component {
componentWillReceiveProps() {
// Complex stuff that only depends on one or 2 props
this.state.math = doExpensiveMath(props);
}
render() {
return <Component {...this.props} math={this.state.math} />;
}
}
const FinalComponent = SmartComponent(DumbComponent);
То, что я ищу, это шаблон, который мешает этому HOC делать свое дело, если реквизиты, от которых я знаю, что это зависит, не изменились. Но это не останавливает повторное рендеринг всего дерева на основе реквизита, как сделал бы shouldComponentUpdate.
Суть в том, что этот HOC происходит из другой библиотеки, и в идеале я не хочу его разветвлять.