this.state.queue
относится к состоянию, локальному для вашего Channel
компонента.Это не избыточное состояние.Вы инициализируете this.state.queue
пустым массивом, а затем никогда не изменяете его (т. Е. Никогда не вызываете this.setState
).
Если вы хотите взаимодействовать с состоянием в redux, вот где вступает mapStateToProps.Поскольку у вас есть mapStateToProps, который выглядит следующим образом:
function mapStateToProps(state) {
const{queue} = state
return {queue}
}
Компонент Channel получит именованную очередь prop , и вы можете взаимодействовать с ним через этот. props .queue.
Итак, исправление заключается в обновлении канала для взаимодействия с опорой.Скорее всего, вам захочется удалить this.state.queue, так как он, кажется, не служит цели и вызывает путаницу из-за его имени.
{this.props.queue &&
this.props.queue.length > 0 &&
<div>
<ul>
{this.state.queue.map((queuedItem, i) =>
<li key={i}>{queuedItem}</li>
)}
</ul>
</div>
}
Кроме того, способ, которым вы установилиВ корне редуктора ваше состояние приращения выглядит примерно так:
{
reducer1: {}, // not sure what this contains, since reducer 1 was omitted
reducer2: {
queue: [],
}
}
Так что если вы действительно хотите, чтобы ваше состояние приращения выглядело так, ваше состояние карты для реквизита должно быть обновлено следующим образом:
function mapStateToProps(state) {
const {queue} = state.reducer2;
return {queue};
}