Итак, у меня есть этот компонент боковой панели, куда я загружаю свой магазин и моего диспетчера
//select
const mapStateToProps = state => {
return { renderedEl: state.renderedEl }
}
function mapDispatchToProps(dispatch) {
return{
renderLayoutElement: element => dispatch(renderLayoutElement(element))
}
}
Затем внутри того же компонента это как я запускаю диспетчер
renderEl = (el) => {
var elementName = el.target.getAttribute('id');
var renderedElements = this.props.renderedEl; //this is data from the store
for (let key in renderedElements) {
if (key == elementName) {
renderedElements[key] = true
}
}
this.props.renderLayoutElement({renderedElements});
}
Затем, когда я Понимаю, что его посылают в редуктор
import {RENDER_LAYOUT_ELEMENT} from "../constants/action-types"
const initialState = {
renderedEl: {
heimdall: false,
skadi: false,
mercator: false
}
}
function rootReducer(state = initialState, action){
if(action.type === RENDER_LAYOUT_ELEMENT){
return Object.assign({},state,{
renderedEl: state.renderedEl.concat(action.payload)
})
}
return state
}
export default rootReducer;
Это его действие
import {RENDER_LAYOUT_ELEMENT} from "../constants/action-types"
export function renderLayoutElement(payload) {
return { type: RENDER_LAYOUT_ELEMENT, payload }
};
Теперь дело в том. Я получаю
state.renderedEl.concat не является функцией rootRuducer / при отправке
Я не понимаю, почему это происходит.
Becuase На самом деле магазин обновляется, как я вижу, но консоль возвращает эту ошибку. И я должен перезагрузить рендер, который использует реквизиты этого хранилища (с указателем поворота), чтобы увидеть изменения. Это не происходит автоматически, как это было бы с состоянием