Size: a a a

2019 August 07

LK

Leonid Kuznetsov in React Kyiv
я бы хотел по итогу получить аля такую запись
connect(selectors,actions)
источник

IM

Igor Machuzhak in React Kyiv
так а в чому проблема?
источник

IM

Igor Machuzhak in React Kyiv
connect(createStructuredSelector({
 todos: todoSelector
}), actions)
источник

IM

Igor Machuzhak in React Kyiv
чи я щось не так розумію
источник

LK

Leonid Kuznetsov in React Kyiv
ты имеешь ввиду что в таком случаи нет необходимости прокидывать
state
?
источник

IM

Igor Machuzhak in React Kyiv
createStructuredSelector прокине кожному селектору state & props
источник

LK

Leonid Kuznetsov in React Kyiv
супер, спасибо
источник

LK

Leonid Kuznetsov in React Kyiv
именно это я и хотел)
источник

LK

Leonid Kuznetsov in React Kyiv
в доке просто такого я не прочел, что он прокинет каждому state,props
источник

LK

Leonid Kuznetsov in React Kyiv
там слегка завуалировано написано, аля что он возьмет все значения обьекта и сопоставит их с аргументами функции
источник

IM

Igor Machuzhak in React Kyiv
так і є, state, pros - аргументи ф-ції
источник

LK

Leonid Kuznetsov in React Kyiv
именно
источник

LK

Leonid Kuznetsov in React Kyiv
но просто не очевидно слегка было)
createStructuredSelector is a convenience function for a common pattern that arises when using Reselect. The selector passed to a connect decorator often just takes the values of its input-selectors and maps them to keys in an object:

createStructuredSelector takes an object whose properties are input-selectors and returns a structured selector. The structured selector returns an object with the same keys as the inputSelectors argument, but with the selectors replaced with their values.
источник

LK

Leonid Kuznetsov in React Kyiv
тоесть имметься ввиду что изначальная задача исходя из ихней доки это просто сопоставление по ключам
источник

НШ

Никита Шулипа in React Kyiv
ну, там так и написано -ключи будут как ты задашь, а значениями передай селекторы, и всё)
источник

LK

Leonid Kuznetsov in React Kyiv
Никита Шулипа
ну, там так и написано -ключи будут как ты задашь, а значениями передай селекторы, и всё)
а каким образом он берет аргументы с функции и прокидывает каждому значения ключа?
источник

LK

Leonid Kuznetsov in React Kyiv
export function createStructuredSelector(selectors, selectorCreator = createSelector) {
 if (typeof selectors !== 'object') {
   throw new Error(
     'createStructuredSelector expects first argument to be an object ' +
     `where each property is a selector, instead received a ${typeof selectors}`
   )
 }
 const objectKeys = Object.keys(selectors)
 return selectorCreator(
   objectKeys.map(key => selectors[key]),
   (...values) => {
     return values.reduce((composition, value, index) => {
       composition[objectKeys[index]] = value
       return composition
     }, {})
   }
 )
}
источник

LK

Leonid Kuznetsov in React Kyiv
исходя из кода он ключи со значением сопостовляет
источник

LK

Leonid Kuznetsov in React Kyiv
вопрос только в том что как он вытягивает аргументы с функции и добовляет в каждый селектор
источник

НШ

Никита Шулипа in React Kyiv
в selectorCreator загляни, если интересно
источник