Я реализовал очень простые вкладки на React.js.
на Redux не работают
нужно пройтись в сторе по массиву найти у какого объекта stepConditions.active === true ему поставить false, а следующему объекту в stepConditions.active выставить true
case OPEN_NEXT_EXPRESS_FORM_STEP:
const active = 1 + state.findIndex(n => n.stepConditions.active);
return active ? state.map((n, i) => ({
...n,
stepConditions: {
...n.stepConditions,
active: i === active,
},
})) : state;
case OPEN_NEXT_EXPRESS_FORM_STEP:
return state.map((n, i, arr) => ({
...n,
stepConditions: {
...n.stepConditions,
active: !!(i && arr[i - 1].stepConditions.active),
},
}));
_react.default.createContext is not a function
гугл советует перейти на 16 версию реакта, но не думаю что это проблема старой версии
"react-redux": "^6.0.0"
React Redux 6.x requires React 16.4 or later.
isBlockNavButtons
отвечает за логику disable для тех кнопок. То есть если у нас элемент последний или первый, то мы блочим нужную нам кнопку.
dispatch({
type: `${CREATE_QUESTION}_BLOCK_BUTTON`,
payload: {
blockPreviousButton: elementIndex === 0,
blockNextButton: elementIndex === data.length - 1,
},
});
return {
...state,
[action.title]: {
...state[action.title],
title: action.title,
},
};
connect(mapStateToProps, null)(Authentication);
you have to pass formReducer under 'form' key
return state["users"].entities.forEach(user => { if (user.email === state["auth"].user.email) { return user; } });
return state.users.entities.find(user => user.email === state.auth.user.email);
i.includes(["качель","окно"])
[ 'качель', 'окно' ].includes(i)
const mapStateToProps = ({ list }, { params }) => ({
list: list.filter(n => n.params.some(m => params.includes(m))),
});
const addEntry = (state, action) => {
const cards = [...state.cards];
const index = cards.findIndex(n => n.id === action.id);
const card = {...cards[index]};
card.entries = [ ...card.entries, { id: Math.random().toString(36).substring(7) } ];
cards[index] = card;
return { cards };
};
const addEntry = (state, action) => {