У меня есть родительский компонент, который (упрощенно) выглядит следующим образом
export default class ProductGrid extends React.PureComponent<Props, State> {
renderProducts() {
return this.props.products.map(product => (
<Product {...product} />
));
}
render() {
return <div>{this.renderProducts()}</div>;
}
}
В моем Product
компоненте, однако, я должен подписаться на текущий выбор или хотя бы на количество выбранных элементов.
Вот в чем проблема : из-за подписки на эту часть данных в магазине приставок, при каждом изменении моего номера выбора, это приведет к тому, что каждый продукт, который в данный момент виден, обновляется
Хотя я мог бы реализовать пользовательский shouldComponentUpdate
и опустить это свойство, он все равно запускает этот пользовательский хук жизненного цикла. На моей странице может быть более 200 товаров, поэтому это может вызвать проблемы.
Я использую эту информацию исключительно по капле, и мне было интересно, можно ли просто получить эту информацию "в тот момент" из магазина притока, не подписываясь на изменения. Например, аналогично redux-saga
:
onDragStart = () => {
const selectedCount = select(({ products: { selected } }) => selected.length);
if (selectedCount) {
// whatever here
}
}
Возможно ли это?