Size: a a a

React: русскоязычное сообщество

2020 April 28

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
А как сделать два разных класса Foo с разными параметрами?
Делать как раз в [DI.Self] шаманство.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Вот правильно назвали) Шаманство
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Приходится постоянно мутировать классы, если такая штука будет использоваться в динамических юзкейсах
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Ну, как вариант:

class Foo extends DI.Base {
 static get [DI.Self]() {
   return {
     name: "Foo",
            instanceTag: self => self.id
   }
 }

    constructor({id}) {
      this.id = id
    }
}


DI.configure({
 'Foo': {
    [DI.FindByInstanceTag]: self => ({
      foo: self => self.id
    })
  }
})


c
onst foo1 = new Foo(1)
const foo2 = new Foo(2)

foo1.foo === 1
foo2.foo === 2
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Опять же: название класса в виде строки фигурирует внутри конфига
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
Опять же: название класса в виде строки фигурирует внутри конфига
Да.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Это единственная проблема, которую я не могу решить.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Это плохо. От этого как раз нужно уходить
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Технически, это не обязательно должно быть название класса.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Но пока так.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Ну я пока думаю так --- есть контейнеры и состояния контейнеров.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Вот.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Хочется обойтись без контейнеров.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Первое может быть изменено, а второе Frozen
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Юра Чеботаев
Хочется обойтись без контейнеров.
Если я переименую это как-нибудь будет легче?)
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
Если я переименую это как-нибудь будет легче?)
Вообще без них.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Вот как я написал.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Юра Чеботаев
Ну, как вариант:

class Foo extends DI.Base {
 static get [DI.Self]() {
   return {
     name: "Foo",
            instanceTag: self => self.id
   }
 }

    constructor({id}) {
      this.id = id
    }
}


DI.configure({
 'Foo': {
    [DI.FindByInstanceTag]: self => ({
      foo: self => self.id
    })
  }
})


c
onst foo1 = new Foo(1)
const foo2 = new Foo(2)

foo1.foo === 1
foo2.foo === 2
Тут тоже есть контейнер, просто его под ковер замели.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
Тут тоже есть контейнер, просто его под ковер замели.
Нету.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Есть: его генерит статический геттер по требованию
источник