
Oleksandr
14.08.2018
09:36:41
А самописные?)

Andrew
14.08.2018
09:39:47
А самописные?)
ну прям самописанных не
вот неплохие, простые и наглядные
https://github.com/deepsweet/hocs/tree/master/packages/
народ есть сообщество по сагам?
умарист

Google

Cenator
14.08.2018
09:40:35

Andrew
14.08.2018
09:40:48
сенк
шот там гибло, спрошу здесь
---
приветы
можт кто знает как будет правильнее
мне надо сдлелать оптимистичный интерфейс, сагой сделать запрос на серв, потом собственно если ошибка вернуть обратно состояние, если все ок, ниче не делать
пример
жму чекбокс, экшен перехватывается в саге и редюсере
редюсер меняет состояние
сага шлет запрос, вылетает ошибка, сага путает такой же экшен, для измнения стора, проблема в том, что такое уйдет в луп
как то можно эт сделать без удвоения экшенов?

Oleksandr
14.08.2018
09:50:42
Вангую ответ: не использовать сагу)

Andrew
14.08.2018
09:51:06

Oleksandr
14.08.2018
09:51:12
thunk

Andrew
14.08.2018
09:51:23
не, там все на сагах завязано
этож не просто fetch

Oleg
14.08.2018
09:59:55
шот там гибло, спрошу здесь
---
приветы
можт кто знает как будет правильнее
мне надо сдлелать оптимистичный интерфейс, сагой сделать запрос на серв, потом собственно если ошибка вернуть обратно состояние, если все ок, ниче не делать
пример
жму чекбокс, экшен перехватывается в саге и редюсере
редюсер меняет состояние
сага шлет запрос, вылетает ошибка, сага путает такой же экшен, для измнения стора, проблема в том, что такое уйдет в луп
как то можно эт сделать без удвоения экшенов?
я делал отдельные экшены: "запрос пошел", "запрос не удался", "запрос успешно прошел"


Sergey
14.08.2018
10:00:16
шот там гибло, спрошу здесь
---
приветы
можт кто знает как будет правильнее
мне надо сдлелать оптимистичный интерфейс, сагой сделать запрос на серв, потом собственно если ошибка вернуть обратно состояние, если все ок, ниче не делать
пример
жму чекбокс, экшен перехватывается в саге и редюсере
редюсер меняет состояние
сага шлет запрос, вылетает ошибка, сага путает такой же экшен, для измнения стора, проблема в том, что такое уйдет в луп
как то можно эт сделать без удвоения экшенов?
О, сталкивался с таким
Вкратце - если руками кидать экшн запускающий сагу (через takeEvery, например), а потом кидать из саги экшн с таким же типом (но, например, с другим пейлоадом), то сага детонирует

Andrew
14.08.2018
10:05:27

Google

Andrew
14.08.2018
10:07:06
в целом есть идея в мету прокинуть флаг для игнора
сага будет смареть есть ли такой флаг и не будет реагирвоать

Sergey
14.08.2018
10:08:23

Andrew
14.08.2018
10:09:02

Sergey
14.08.2018
10:09:52
Кроме как разными типами экшнов эту проблему не решить. Экшны, которые кидаются сагой, имеют символьное поле SAGA_ACTION, тогда как обычные не имеют. В зависимости от наличия этого поля сага выполняет эффект либо синхронно, либо асинхронно, положив эффект в очередь и обработав потом. И если из саги кидается экшн, которым она запустилась - там будет очень странная история с этой очередью

Andrew
14.08.2018
10:10:38
action({type: 'a', payload: { enabled: true }, meta: { onlyStore: false })
saga(action) {
if(action.meta.onlyStore) return
yield put(action({type: 'a', payload: { enabled: false }, meta: { onlyStore: true }))
}
типа того

Sergey
14.08.2018
10:11:57
Неа, все равно сдетонирует. Ты же эту сагу будешь через takeEvery/takeLatest/takeКакТоПоДругому запускать, а бага зарыта в логике обработки эффекта take

Andrew
14.08.2018
10:12:31
хотя не, у тебя же она выйдет из функции
и больше не будет диспатчится
но это выглядит костылем
кажись кроме как плодить экшены, ниче лучше не сделать

Sergey
14.08.2018
10:16:02
она после первого yield put уже будет работать не так, как ты ожидаешь

Petr
14.08.2018
10:16:39
добавить в редюсере новое поле не подойдет? Типо prevState?

Vlad
14.08.2018
10:16:41
Ребята, помогите, пжл., с моей тривиальной задачей. Я - верстальщик и многое пока не понимаю, но пробую делать простые вещи.
Нужно по клику на пункты меню(ul.menu) менять страницы. Вот то, что в моём App.js:
import React, { Component } from 'react';
import './scss/main.scss';
import Element from './app/containers/Home/home';
import Profile from './app/containers/Profile/profile';
import News from './app/containers/News/news';
class App extends Component {
render() {
return (
<div className="App">
<ul className="menu">
<li><a href="">home</a></li>
<li><a href="">profile</a></li>
<li><a href="">news</a></li>
</ul>
<Element />
<Profile />
<News />
</div>
);
}
}
export default App;
как я понимаю - надо создать функцию, в которой будет меняться мои компонентики?

Nazar
14.08.2018
10:18:48
React Router

Cenator
14.08.2018
10:19:06

Again
14.08.2018
10:20:30

Google

Cenator
14.08.2018
10:20:50

Duego
14.08.2018
10:23:53
Кто нибудь юзает формик?
Есть глубокая форма
state = { user: data: fullName: '' }
Както можно сразу проинициализировать поля touched и erros, а то приходится писать длинную портянку
errors.user && errors.user.data && errors.user.data.fullName &&& touched.user && ...

Владимир
14.08.2018
10:25:46

Cenator
14.08.2018
10:26:23

Again
14.08.2018
10:27:12

Alexey
14.08.2018
10:27:34
а есть ли возможность сделать так ? <input name = {'test'} onChange={validate(this.name)}>

Andrew
14.08.2018
10:27:37
Вроде они уже на stage 2

Cenator
14.08.2018
10:27:52

Andrew
14.08.2018
10:29:06
Вижу
Чета долго все, хочу уже из коробки их юзать

Cenator
14.08.2018
10:29:53
так лол, когда в спеке будет тогда и в коробку положат

Sergey
14.08.2018
10:31:02
Пацыки, сорян за оффтоп, но просто стало интересно почему 5++ или ++5 выдаст ошибку?

Roman
14.08.2018
10:31:41

Владимир
14.08.2018
10:32:28

Sergey
14.08.2018
10:32:32
какую?
ну вообще нельзя так делать. просто интересно почему

Roman
14.08.2018
10:32:39

Sergey
14.08.2018
10:32:46
Invalid left-hand side expression in postfix operation

Roman
14.08.2018
10:33:38

Google

Roman
14.08.2018
10:33:44
5 у тебя нигде не хранится

Andrew
14.08.2018
10:33:49

Sergey
14.08.2018
10:37:51

Vlad
14.08.2018
11:03:15
Юхоо!!! )
VSCode обновился, теперь блоки можно сворачивать разворачивать ) Крошки появились как в InteliJ

Andrey
14.08.2018
11:04:27

Kendr
14.08.2018
11:05:14

Andrey
14.08.2018
11:05:22

Kendr
14.08.2018
11:05:26

Admin
ERROR: S client not available

Andrey
14.08.2018
11:05:36
И автосейвы не работают(

Vlad
14.08.2018
11:06:17
И автосейвы не работают(
птичку нужно поставить File -> AutoSave
Но я отказался от него в пользу ctrl +k, s. Вношу изменения блоками и сейву.

Andrey
14.08.2018
11:06:56
?♂️

Arthur
14.08.2018
11:07:41

Nahasaki
14.08.2018
12:39:31
Привет, ребята
Появилась ли простая замена редаксу, которая работает на новом Context API?

Oleg
14.08.2018
12:40:31

Nahasaki
14.08.2018
12:42:42
ух ты
круто выглядит

Andrey
14.08.2018
12:43:06

Nahasaki
14.08.2018
12:43:22
ок

Google

Nahasaki
14.08.2018
12:43:41
мне надо Single Source of Truth и его апдейты. Мне нужен редакс?


N
14.08.2018
12:46:55
привет , подскажите плиз , вобщем есть уменя компонент , в нем есть два стейта , один для запихивания туда массива данных иззапроса а другой это параметр для урла (сколько записей выводить) , и вот у меня в didMount есть запрос который сетстейтит полученный массив в первый стейт , + есть кнопка лоад море на которой на онклике сетстейт count + 10 (обновляет стейт с каждым нажатием ) , но вот реакт ругается на максимальное колличество обновлений , как исправть такую ошибку ?
<Component
initialState={{
activeSales: null,
loading: true,
loadCount: 10
}}
didMount={async ({ state, setState }) => {
const respActiveSales = await fetch(
${BASE_URL}/project?count=${state.loadCount},
{
method: "GET",
headers: {
"Content-Type": "application/json"
}
}
);
try {
if (respActiveSales.ok) {
const respValue = await respActiveSales.json();
setState({ activeSales: respValue, loading: false });
}
} catch (e) {
console.log(e);
}
}}
>
{({ state, setState }) => (
<Fragment>
{state.loading ? (
<div>Loading</div>
) : state.activeSales ? (
state.activeSales.map(ActiveSalesList)
) : null}
<button onClick={setState({ loadCount: state.loadCount + 10 })}>
Load more
</button>
</Fragment>
)}
</Component>


Vlado
14.08.2018
12:49:42

N
14.08.2018
12:50:06
react-component-component

.Feruz
14.08.2018
12:50:15
session for react
I need a session for react. somebody knows
,,

from
14.08.2018
12:53:10

.Feruz
14.08.2018
12:54:25
оф корс
can you suggest me any think
??

from
14.08.2018
12:55:48

Vlado
14.08.2018
13:01:05
react-component-component
в load more кнопке в onClick должно быть () => setState(state => ({ loadCount: state.loadCount + 10 }))

N
14.08.2018
13:10:01
ну это д а
а как сделать чтоб при обновлении стейта запрос отправлялся заново
и перезаписывал данные

Roman
14.08.2018
13:16:09

ri
14.08.2018
13:24:31
Привет! Можете посоветовать статей по тестированию реакт-компонентов? Что нужно тестировать, чего не нужно. Как к этому лучше подходить?

Oleg
14.08.2018
13:25:24

Andrey
14.08.2018
13:25:48