Pull to refresh
9
0

Пользователь

Send message
Думаю, вы на правильном пути, вам необходим WebSocket. Приблизительно это выглядит так, например, кто-то поменял данные о пользователе, и сервер получил эту информацию. Тогда через сокеты сервер отсылает всем клиентам сообщение вида
 {store:"user", method:"edit", fields:"{id:1, name:"firstname",...}"}

обработчик на клиенте принимает сообщение, парсит что/как нужно изменить и дергает необходимый метод, например:

userStore.editUser(fields);

@observable users = [];
...
editUser(fields){
let user = this.users.filter(user=>{
  return  user.id==fields.id;
});

user.set(fields);
}


так как у вас будут observer компоненты, которые будут наблюдать за юзерами, то они автоматически перересуются.
Да, всегда так с формами. Видел вот такую реализацию:
стор
export default class FormStore extends ContextStore {
  @observable fields = asMap();
  @observable defaults = asMap();
  @observable errors = asMap();
...
  @action updateField = (field, value) => {
    this.fields.set(field, value);
  }
  getFields() {
    return this.fields.toJS();
  }

  getErrors() {
    return this.errors.toJS();
  }

и HOC
    <TextField
      type="text"
      placeholder="First Name"
      name="firstName"
      value={props.fields.firstName}
      errorMessage={props.errors.firstName}
      onChange={props.updateField}
      isTransparent={false} />
Смысл mobx — управлять состояниями.
Куда проще почитать офф. доки

Свободного времени сложно найти на то, что бы разобраться в его магии

Я вас правильно понял, что вы можете прочитать доки, но у вас времени нет, но статьи бесполезны?
Это ответ из личного опыта и крутится ли у вас в продакшене проект с mobx?
Даёт очень быстрый старт, весь минимальным набор для начала уже есть, но, насколько я знаю, проблема в кастомизации. Хочешь изменить конфигурацию — делай eject, но обратной дороги нет.

Information

Rating
Does not participate
Registered
Activity