Вы не подключите компонент root (который я предполагаю <App>
) к хранилищу, но, вероятно, отобразите другой компонент, который подключен. Предполагая, что у вас есть такая структура:
<MyStoreProvider>
<App>
<SomeComponent>
<CounterDisplay />
</SomeComponent>
<Counter />
</App>
</MyStoreProvider>
, где CounterDisplay
подключен к вашему магазину:
const CounterDisplay = ({count}) => (
<p>{`The count is ${count}`}</p>
);
const mapStateToProps = state => ({count: state.count});
export default connect(mapStateToProps)(CounterDisplay);
Обычно вы пытаетесь поддерживать соединение как можно ближе к компонентам, которые на самом деле нужны состояния или действия для предотвращения повторного рендеринга всего дерева и уменьшения необходимости передачи состояния вниз.
Еще проще использовать с hooks :
const CounterDisplay = () => {
const count = useSelector(state => state.count);
return (
<p>{`The count is ${count}`}</p>
);
};
Значит, Redux действительно «хранилище данных и подпорка»?
Вы могли бы так назвать. Это библиотека управления состоянием, которая позволяет вам подписываться на изменения состояния и обновлять состояние не изменяющим приемлемым образом (например, чтобы позволить перемещаться во времени через изменения вашего состояния). Это может фактически использоваться полностью без реакции. Фактические привязки, которые позволяют удобно использовать его с реакцией, находятся в отдельном пакете react-redux
.