У меня есть компонент, который содержит список товаров для заказа. В настоящее время единственной опорой для компонента является идентификатор заказа, и компонент отвечает за получение списка элементов в состояние и их отображение.
Теперь, если другой компонент добавляет или изменяет элемент в заказе, я хочу перерисовать список элементов, но без изменения идентификатора заказа.
Обычный подход, кажется, заключается в том, чтобы иметь поддельную опору, которая является просто одноразовым значением, которое родитель может изменить, когда компонент должен обновить sh и компонент использует if (prevProps.nonce != this.props.nonce)
в методе componentDidUpdate
.
Он отлично работает, но мне не нравится тот факт, что мне приходится использовать то, что выглядит как уловка для такого простого случая. Я понимаю, что есть другие альтернативы, такие как вызов forceUpdate()
, но опять же документация не рекомендует его использовать.
Должен ли я поднять состояние до родительского, даже если никакие другие компоненты не заботятся о списке элементов? Это кажется наиболее подходящим для React-i sh способом сделать это, но мне не нравится, как он нарушает принцип инкапсуляции ОО.