
Artem
02.08.2018
19:04:00

aspirin
02.08.2018
19:04:04
регрессионые вроде называются тесты
я так понял что это более широкое название, я ничего не нашел подходящего для себя к сожалнию для рендера компонентов в скрины и пришлось написать, надеюсь потом в опен сорс выложить

Artem
02.08.2018
19:04:54

Google

aspirin
02.08.2018
19:05:06
при релизе автоматом перерендериваются
а еще хочется хранить версии скринов, они же могут и обновлятся на новый "эталон"

Cenator
02.08.2018
19:07:46

aspirin
02.08.2018
19:08:06

Hrant
02.08.2018
19:59:10
всем привет
проблема с инпут

Kendr
02.08.2018
19:59:37

Hrant
02.08.2018
19:59:40
инпут разрешает только писать один символ за раз

Kendr
02.08.2018
19:59:44
Одним сообщением

Hrant
02.08.2018
19:59:46

Google

Kendr
02.08.2018
20:00:08

Hrant
02.08.2018
20:00:37
А как надо?
ну чтобы сколько раз хотел столько писал он выходит из фокуса после каждого символо

Kendr
02.08.2018
20:00:53

Hrant
02.08.2018
20:01:57

Vladislav
02.08.2018
20:19:18

Vladimir
02.08.2018
20:42:43
Ребята, пните меня в нужную сторону, пожалуйста. Задача довольно несложная, но я туплю под вечер. Есть текстовый инпут, если в нем что-то есть, то надо показать еще один дом-элемент.
{
this.searchInput.current.value &&
(<div className="clear-search-btn"></div>)
}
Реф я к нему, естественно, прикрутил (там другие обработчики есть на нем), но внутри рендера компонента вот эта конструкция не работает, ЧЯДНТ?

MaXG
02.08.2018
20:43:32

Spaider
02.08.2018
20:43:52
Так оно у тебя не в стейте
рендер заного не вызывается если ты изменяешь значения не в стейте

Kirill
02.08.2018
20:45:15
Ramda?

Dmitry
02.08.2018
20:46:09
разбить на подредюсер просто

Vladimir
02.08.2018
20:46:24
а, ну хотя логично, если у меня условие, которое требует перерендерить компонент, то надо данные для него писать в стейт

Anton
02.08.2018
20:53:28

Сергей
02.08.2018
20:54:06
Хоки может есть?

Vladimir
02.08.2018
20:54:19

Spaider
02.08.2018
20:54:44

Anton
02.08.2018
20:55:21


Yuriy
02.08.2018
21:21:23
Всем привет. Я тут только начал учить React, так что простите если сильно простой вопрос.
Помогите спроектировать таймер, который будет запускаться по изменению props.
То-есть я рендерю таймер так:
<Timer person={this.state.currentRunner} onFinish={this.handleRaceFinish} />
И в componentDidMount он сохраняет текущий unix timestamp в state.startTimestamp. Это дает возможность посчитать время, нужное person на забег. Когда person добежал, таймер вызовет props.onFinish. И когда родительская компонента изменит props.person на что-то другое, то таймер должен перезапуститься и начать считать время забега уже нового чувака.
То-есть когда person таки добежал, то Timer сделает следующее:
this.props.onFinish(this.props.person, currentTimestamp() - this.state.startTimestamp);
А родительская компонента имеет что-то типа такого:
handleRaceFinish(person, time) {
this.setState(/* update race time of the given person */);
this.setState({currentRunner: /* get next runner */); /* !!!!! */
}
Так вот. Где мне устанавливать Timer'овский state.startTimestamp? При первом запуске я его ставлю в componentDidMount. А какой метод Timer'а будет вызван, когда родительская компонента изменит свой currentRunner (то место, где я поставил /* !!!!! */ ?

Google


Kendr
02.08.2018
21:24:42
Всем привет. Я тут только начал учить React, так что простите если сильно простой вопрос.
Помогите спроектировать таймер, который будет запускаться по изменению props.
То-есть я рендерю таймер так:
<Timer person={this.state.currentRunner} onFinish={this.handleRaceFinish} />
И в componentDidMount он сохраняет текущий unix timestamp в state.startTimestamp. Это дает возможность посчитать время, нужное person на забег. Когда person добежал, таймер вызовет props.onFinish. И когда родительская компонента изменит props.person на что-то другое, то таймер должен перезапуститься и начать считать время забега уже нового чувака.
То-есть когда person таки добежал, то Timer сделает следующее:
this.props.onFinish(this.props.person, currentTimestamp() - this.state.startTimestamp);
А родительская компонента имеет что-то типа такого:
handleRaceFinish(person, time) {
this.setState(/* update race time of the given person */);
this.setState({currentRunner: /* get next runner */); /* !!!!! */
}
Так вот. Где мне устанавливать Timer'овский state.startTimestamp? При первом запуске я его ставлю в componentDidMount. А какой метод Timer'а будет вызван, когда родительская компонента изменит свой currentRunner (то место, где я поставил /* !!!!! */ ?
gdsfp
О еботь, не дочитал


Yuriy
02.08.2018
21:27:22
Ух-ты
getDerivedStateFromProps может как раз то что и нужно.

Kendr
02.08.2018
21:27:49

Yuriy
02.08.2018
21:30:23
Тогда еще один вопрос можно? А не правильнее будет ли тут использовать componentDidUpdate?
(мне для себя -- только первый день заканчиваю с react'ом)

Kendr
02.08.2018
21:31:05

Yuriy
02.08.2018
21:31:17
А почему?..

Kendr
02.08.2018
21:31:32
Ну мб да я не читал твою задачу
Всего доброго

Дмитрий
02.08.2018
21:32:00
??

Yuriy
02.08.2018
21:32:44
Вот меня интересует почему официальная документация говорит не использовать getDerivedStateFromProps

Kendr
02.08.2018
21:33:01
Еще раз прочти название статьи

Yuriy
02.08.2018
21:33:44
> This method exists for *rare use cases* where the state depends on changes in props over time.
> We did not provide many examples, because as a general rule, derived state should be used sparingly

Kendr
02.08.2018
21:34:34
Ладно я спать удачи там

Yuriy
02.08.2018
21:34:47
Спасибо
Тогда еще один вопрос группе. Вот есть статья
https://reactjs.org/docs/state-and-lifecycle.html#adding-lifecycle-methods-to-a-class
Там есть компонента Clock. В ней, очевидно, есть свой state. Но почему-то timerID сохраняют не в state, а в this.timerID = ...; Почему так?

Google

Admin
ERROR: S client not available

Alexander
02.08.2018
21:43:30
а вот скажите, пожалуйста, если у нас один канал, через который мы авторизируемся (https), нахуя нам refresh? mitm-атаки боимся?

dima
02.08.2018
22:25:22

Yuriy
02.08.2018
22:26:07


dima
02.08.2018
22:29:56
Всем привет. Я тут только начал учить React, так что простите если сильно простой вопрос.
Помогите спроектировать таймер, который будет запускаться по изменению props.
То-есть я рендерю таймер так:
<Timer person={this.state.currentRunner} onFinish={this.handleRaceFinish} />
И в componentDidMount он сохраняет текущий unix timestamp в state.startTimestamp. Это дает возможность посчитать время, нужное person на забег. Когда person добежал, таймер вызовет props.onFinish. И когда родительская компонента изменит props.person на что-то другое, то таймер должен перезапуститься и начать считать время забега уже нового чувака.
То-есть когда person таки добежал, то Timer сделает следующее:
this.props.onFinish(this.props.person, currentTimestamp() - this.state.startTimestamp);
А родительская компонента имеет что-то типа такого:
handleRaceFinish(person, time) {
this.setState(/* update race time of the given person */);
this.setState({currentRunner: /* get next runner */); /* !!!!! */
}
Так вот. Где мне устанавливать Timer'овский state.startTimestamp? При первом запуске я его ставлю в componentDidMount. А какой метод Timer'а будет вызван, когда родительская компонента изменит свой currentRunner (то место, где я поставил /* !!!!! */ ?
отец ? рили ? ahjahah
а почему не мать ?
хотя как то странно ?
Всем привет. Я тут только начал учить React, так что простите если сильно простой вопрос.
Помогите спроектировать таймер, который будет запускаться по изменению props.
То-есть я рендерю таймер так:
<Timer person={this.state.currentRunner} onFinish={this.handleRaceFinish} />
И в componentDidMount он сохраняет текущий unix timestamp в state.startTimestamp. Это дает возможность посчитать время, нужное person на забег. Когда person добежал, таймер вызовет props.onFinish. И когда родительская компонента изменит props.person на что-то другое, то таймер должен перезапуститься и начать считать время забега уже нового чувака.
То-есть когда person таки добежал, то Timer сделает следующее:
this.props.onFinish(this.props.person, currentTimestamp() - this.state.startTimestamp);
А родительская компонента имеет что-то типа такого:
handleRaceFinish(person, time) {
this.setState(/* update race time of the given person */);
this.setState({currentRunner: /* get next runner */); /* !!!!! */
}
Так вот. Где мне устанавливать Timer'овский state.startTimestamp? При первом запуске я его ставлю в componentDidMount. А какой метод Timer'а будет вызван, когда родительская компонента изменит свой currentRunner (то место, где я поставил /* !!!!! */ ?



Yuriy
02.08.2018
22:32:14

dima
02.08.2018
22:32:35
ну хз. Обычно просто родитель

Yuriy
02.08.2018
22:33:05
Ок. Еще один, возможно тупой, вопрос. Если у меня есть компонент (скажем Thermometer), который что-то считает. То как из него передать значения измерений родителям? Lifting State Up советует делать callback method. Но, кажется, выглядит как-то тупо:
<Thermometer reportTo={this.handleTemperatureInfo} />

Сергей
02.08.2018
23:24:35

Yuriy
02.08.2018
23:26:55
Может onDataAvailable ?

Сергей
02.08.2018
23:27:54
Ну как событие называется так и называй
Только не onClick

Yuriy
02.08.2018
23:30:57
А есть ли какой-то нормальный способ родителям спростить значение? Ну или попросить эту компоненту сохранять значение куда мне нужно? Ну, то-есть, в C я бы просто указатель передал. writeTo=&temperature.
Либо как-то так: therm1.getTemp()?
Или в react идиоматически правильно через callback?

Google

Сергей
02.08.2018
23:33:55

Yuriy
02.08.2018
23:34:55
Гм. Ок. Спасибо.

Mark
03.08.2018
04:03:17
Утро доброе
Возможно, сейчас мне дадут разрешение переписать все это говно под атомик дизайн (правда все еще на преакте?) НАКОНЕЦ-ТО мои молитвы могут быть услышаны

Павел
03.08.2018
04:04:11
Парни, так что, ни кто не работал с Ckeditor5 balloon, и value поля не выдергивал?

Mark
03.08.2018
04:06:58
Прости, впервые такое слышу

m
03.08.2018
05:10:32
подскажите такую штуку. Сбилдил в этот раз create-react-app проект, раздаю нодой, открываю страницу и в network все файлы приняты на клиенте, но реакт-приложение не отрисовывается. Куда смотреть?

Ilya
03.08.2018
05:12:24