case ADD_PRODUCT_TO_CART_SUCCESS: {
return state.setIn(["entities", payload.productUid], {...payload.product, count: ВАШЕ_КОЛИЧЕСТВО});
}
{ type: ADD_PRODUCT_TO_CART_SUCCESS,
payload: { productUid, product, count: ваше_количество } // сюда count можно передавать из функции с помощью которой ваш экшен был создан...
}
const authenticateWithEmailAndPassword = (email, password) => {
// console.log('authenticateWithEmailAndPassword',email, password)
return dispatch => {
dispatch({type: types.START_LOGIN});
firebaseAuth.signInWithEmailAndPassword(email, password)
.then(result => {
//Здесь вы ложите email и пасс пользователя в users/people/id данного пользователя
dispatch(signInEmailPasswordSuccess(result))
})
.catch(error => {
dispatch(signInError(error))
});
}
}
class App extends React.Component {
render() {
return (
<div>
<Switch>
<Route exact path='/' component={Home} />
<Route path='/signup' component={Registration} />
<Route component={NoMatch} /> {/* для всех остальных адресов */}
</Switch>
</div>
);
}
}
<a>
компонент из RR - <Link to='registration'>Регистрация</Link>
<Link to="/signup" className="btn btn-warning">Регистрация</Link>
Пытался нагуглить, но самостоятельно разобраться в простыне кода не могу.
Как происходит авторизация в SPA?
и еще вопрос. знаюесть такая сущность как firebase, можно ли ее использовать для небольшого проекта вместо "обычной" бд?
componentWillReceiveProps({ isOpen, article, loadArticleComments }) {
loadArticleComments(article.id)
}
componentWillReceiveProps({ isOpen, article, loadArticleComments }) {
if (
!article.commentsLoaded &&
!article.commentsLoading &&
!this.props.isOpen &&
isOpen
) {
loadArticleComments(article.id)
}
}
case "LOAD_ARTICLE_COMMENTS_SUCCESS": {
return articleState
.setIn(["entities", action.payload.articleId, "commentsLoading"], false)
.setIn(["entities", action.payload.articleId, "commentsLoaded"], true);
}
return (
<div>
<h5>{comment.user}</h5>
{comment.text}
</div>
);
class Game extends React.Component {
state = {
panesCurrent: [],
panesDefault: [ 1, 1, 1, 0, -1, -1, -1 ],
panesWin: [ -1, -1, -1, 0, 1, 1, 1 ],
}
componentDidMount() {
this.reset();
}
componentDidUpdate() {
if (this.state.panesCurrent.every((n, i) => n === this.state.panesWin[i])) {
setTimeout(alert, 25, 'WIN');
}
}
onClick(index) {
const clicked = this.state.panesCurrent[index];
if (clicked === 0) {
return;
}
for (let i = 1; i <= 2; i++) {
const t = index + clicked * i;
if (this.state.panesCurrent[t] === 0) {
const panes = [...this.state.panesCurrent];
[ panes[index], panes[t] ] = [ panes[t], panes[index] ];
this.setState({ panesCurrent: panes });
break;
}
}
}
reset = () => {
this.setState(({ panesDefault }) => ({
panesCurrent: [...panesDefault],
}));
}
render() {
return (
<div>
<button onClick={this.reset}>reset</button>
<div className="game">
{this.state.panesCurrent.map((n, i) => (
<div
className={'pane ' + [ 'left', '', 'right' ][n + 1]}
onClick={() => this.onClick(i)}
></div>
))}
</div>
</div>
)
}
}
.game {
font-size: 5px;
}
.pane {
display: inline-block;
width: 10em;
height: 10em;
margin: 1em;
}
.pane.right::after,
.pane.left::after {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
font-family: monospace;
font-size: 4em;
}
.pane.right::after {
content: "-->";
color: red;
border: 2px solid red;
}
.pane.left::after {
content: "<--";
color: lime;
border: 2px solid lime;
}
Как связать например данные из БД со стором в redux?
Как организовать работу с данными?
Как хранить задачи пользователя, как хранить его посты?
isFetching: false,
pagination: {
currentPage: 1,
nextPage: 2,
perPage: 50,
totalEntires:100500
},
....
posts: {посты}
// то что вы предоставили это не JSON...
const data = [
{ "name": "Name 1", "city": "city 1", "developer": "dev 1" },
{ "name": "Name 2", "city": "city 2", "developer": "dev 2" },
{ "name": "Name 3", "city": "city 1", "developer": "dev 3" }
];
const cities = new Set();
JSON.parse(JSON.stringify(data)).forEach(item => {
cities.add(item.city)
});
console.log(cities); // {"city 1", "city 2"}
const elements = [
{ value: "pizza", active: true, hidden: false },
{ value: "sushi", active: false, hidden: false },
{ value: "steak", active: false, hidden: false }
];
elements.forEach(element => element.letters = [...element.value]);
console.log(elements[0]); // { value: "pizza", active: true, hidden: false, letters: ["p", "i", "z", "z", "a"] }