РЕАКТ: Как построить хук селектора поля объекта, похожий на приставку useSelector - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь построить ловушку, которая бы возвращала выбранное подмножество пар ключ-значение из объекта. Предполагая, что хук имеет доступ к объекту, который выглядит следующим образом:

const stores = { someStore: { someField: 'fieldValue' } }

как мы можем передать обратный вызов хуку для выбора полей из объекта stores? Идеальным сценарием было бы, чтобы хук работал так:

const {selectedField} = useStores(stores => ({ selectedField: stores.someStore.someField }))

Цель этого хука - заменить MobX @inject(stores => ({...})) в моей кодовой базе.

1 Ответ

1 голос
/ 15 апреля 2020

Просто запустите селектор против stores

function useStores(selector) {
  const stores = { someStore: { someField: 'fieldValue' } };
  
  return selector(stores); 
}

const { selectedField } = useStores(stores => ({ selectedField: stores.someStore.someField }));

console.log(selectedField);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...