
Alexander
18.01.2017
15:23:06
нужен совет. Есть админка, в ней страница Settings с формой обновления данных профиля. Дело в том, что есть несколько типов пользователей, и в зависиомости от залогиненного пользователся набор полей в этой форме может изменяться. Как быть? Для разных пользователей разные вьюхи с формами? Или динамически поля формы генерировать с React.createElement и добавлением событий и т.д. ?

ಠ_ಠ
18.01.2017
15:23:13
Помошь нужна?
Или сама решила?

Maxim robox
18.01.2017
15:23:28
От Senior full-stackoverflow web developer. =)

Google

ಠ_ಠ
18.01.2017
15:23:49
Чем разные components

Vasiliy
18.01.2017
15:25:35
лол, а где мое одно единственное вполне корректное сообщение за этот день и чем оно хуже всего этого флуда выше?

ಠ_ಠ
18.01.2017
15:25:40
Катю убрали чтоли?
Она теперь не может зайти

Vladimir
18.01.2017
15:26:26
я убрал

Дмитрий
18.01.2017
15:26:29

Anton
18.01.2017
15:26:45
кек

ಠ_ಠ
18.01.2017
15:27:00
я убрал
Без варнингов, предупреждении
Просто так?

Eugeniy
18.01.2017
15:27:06

Vladimir
18.01.2017
15:27:18
не просто так

Google

Klim
18.01.2017
15:27:24

Vladimir
18.01.2017
15:27:34
дебажить надо уметь

Дмитрий
18.01.2017
15:28:31
?

Таймураз
18.01.2017
15:28:59
А что насчет react.js noobs?

Alexander
18.01.2017
15:29:22
спасибо
с событиями и валидацией наверное гемор будет
@ZeroBias есть идея?

a
18.01.2017
15:40:58
в родительском компоненте чекаешь конкретного пользователя и рендеришь соответствующий компонент?

Alexander
18.01.2017
15:42:00
чота привык думать роутами. ну да, так годится
спасибо

? ethorz
18.01.2017
15:43:25
onDeleteClick(id) {
this.props.deleteLocation(id);
}
почему пропс нул?

Eugeniy
18.01.2017
15:46:38

? ethorz
18.01.2017
15:46:44
так
теперь норм, зашел в редьюсер

Eugeniy
18.01.2017
15:47:02
вообще полный листинг бы, а то не понятно

? ethorz
18.01.2017
15:47:11
Uncaught TypeError: Cannot read property 'filter' of undefined
var output = state.data.filter(newArray => newArray.id !== action.id);
return [ output, ...state]
тут ругается

Google

Eugeniy
18.01.2017
15:48:05
а data это массив?)

Dmitry
18.01.2017
15:48:25
data - это undefined)

Nikolay
18.01.2017
15:48:34

Mikhail
18.01.2017
15:48:48
(state.data || []).filter(newArray => newArray.id !== action.id);
Если совсем лениво сделать нормально...

Eugeniy
18.01.2017
15:49:38
Покажи стейт редьюсера изначальный

? ethorz
18.01.2017
15:49:55
да там дата андефайнд
function mapDispatchToProps(dispatch) {
return bindActionCreators(deleteLocation, dispatch);
}
function mapStateToProps({ weather }) {
return { weather }; // {weather} === {weather: weather}
}
export default connect(mapStateToProps, mapDispatchToProps)(WeatherzList);
значит тут не так нужно
mapDispatchToProps() in Connect(WeatherzList) must return a plain object. Instead received undefined.

Eugeniy
18.01.2017
15:51:54
return bindActionCreators({ deleteLocation }, dispatch); ?

? ethorz
18.01.2017
15:52:52
this.props.deleteLocation(id); здесь ругается на null
в хендлере

? ethorz
18.01.2017
15:53:18
два часа пытаюсь понять в чем трабл, не могу понять

Eugeniy
18.01.2017
15:53:41
го лс)

Vasiliy
18.01.2017
16:02:46
да, осторожнее, а то кикнут)

Roman
18.01.2017
16:14:38
Ребят,всем привет. Такой вопрос. Есть следующий код - this.setState({ visible: false }, () => { console.log(this.state.visible) }). console.log выводит true o_O. Есть идеи?

Roman
18.01.2017
16:14:46

Ostap
18.01.2017
16:15:00

Azein
18.01.2017
16:15:33
и есть сорцы

Google

Roman
18.01.2017
16:15:50
а вот как

Azein
18.01.2017
16:16:17
Одна из распространенных практик - это собирать ассеты из сорцов в эту самую директорию с помощью неких лоадеров. Ты чем-то собираешь этот txt? Реквайришь его где-нибудь, хз

Nikita
18.01.2017
16:16:40

Admin
ERROR: S client not available

Nikita
18.01.2017
16:16:56
то есть это ожидаемое поведение

Roman
18.01.2017
16:17:05

Roman
18.01.2017
16:17:12
Это понятно, но console.log же передан в функицю, которая 2 аргументом передана
А она вызывается после изменения state и обновления компонента

Nikita
18.01.2017
16:17:45
да. я кажется тупанул

Azein
18.01.2017
16:18:47
Понимаешь в чем суть, если ты этот txt просто положишь в директорую из которой обслуживается клиент, то надо будет указывать абсолютный путь в клиенте, т.е. это будет get еще один. А если хочешь бандлить - напиши чем лоадить txt и куда ложить.

Roman
18.01.2017
16:20:03

Igor
18.01.2017
16:21:17
@Faizullin @nikdudnik у setState есть коллбек ?,setState может принимать функуию с аргументами prevState, props и на основе их устанавливать state
и setState асинхронный, поведение правильное

Roman
18.01.2017
16:21:52
у setstate есть коллбэк, https://facebook.github.io/react/docs/react-component.html#setstate
The second parameter is an optional callback function that will be executed once setState is completed and the component is re-rendered. Generally we recommend using componentDidUpdate() for such logic instead.
поэтому поведение неверное
скорее всего что-то действительно не то замкнуто
потому что setState вызывается из контейнера, через ref'ы
в контейнере, а-ля this.refs.modal.close()

Nikita
18.01.2017
16:24:51

Roman
18.01.2017
16:25:00

Google

Nikita
18.01.2017
16:25:39
попробовал зарепродьюсить
у меня работает :)
похоже что-то за пределами представленного кода происходит

Roman
18.01.2017
16:25:53

Roman
18.01.2017
16:26:12
))))))))

Igor
18.01.2017
16:26:29
The second parameter is an optional callback function that will be executed once setState is completed and the component is re-rendered. Generally we recommend using componentDidUpdate() for such logic instead.

Roman
18.01.2017
16:26:31

Nikita
18.01.2017
16:26:44
потому что компонент должен данные рендрить, а не методы вызывать. Все что он может сделать - вызывать коллбек, а сверху кто-то данные обновит, а компонент срендрит новое состояние

Dmitry
18.01.2017
16:26:51
Потому что можно сделать нормально и в этом случае еще и проблем таких возникать не будет.

Nikita
18.01.2017
16:27:57
согласен
надо избавиться от использования рефа

Kir
18.01.2017
16:28:31
Зачем constructor и componentWillMount вместе в компоненте прописывать ? )

Nikita
18.01.2017
16:28:53
потому что это не одно и то же?

Kir
18.01.2017
16:30:18
Оба вызываются при маунте компонента...

Nikita
18.01.2017
16:31:56
> This is the only lifecycle hook called on server rendering. Generally, we recommend using the constructor() instead.

Igor
18.01.2017
16:32:14
В новом вебпаке тришэйкинг только для своего кода работает? или вендорский тоже потрясет?