В настоящее время у меня есть экран, на котором я звоню:
const currentBusiness = useSelector(state => state.business.ownerBusiness)
Однако не все пользователи владеют бизнесом, поэтому иногда useSelector не находит бизнес, что означает, что currentBusiness будет false
и иногда это будет true
(в зависимости от пользователя, вошедшего в систему).
Под этим вызовом перехвата у меня есть другой перехват, где я вызываю
const employeeArray = useSelector(state => state.employees.availableEmployees.filter(employee => employee.businessId === currentBusiness.Id));
Второй useSelector полагается на первый useSelector, фактически возвращающий что-то, потому что он использует currentBusiness.Id в методе фильтра.
У меня есть два вопроса:
если я добавлю второй useSelector
в оператор if
с условием currentBusiness === true
, как мне использовать employeeArray
вне оператора if
, потому что мой VSCode показывает мне, что после его вложенияв операторе if
я могу только вызвать его там.
В случае, если я решу свой первый вопрос, как мне предотвратить получение ошибки, "оказывалось больше хуков, чем во времяпредыдущий рендер ", потому что если сurrentBusiness имеет значение false. Я бы не выполнял useSelector
в операторе if
(я буду рендерить определенный экран), однако, когда это правда, я буду выполнять тот дополнительный хук, который вызывает ошибку. (Я буду отображать другой экран со списком всех текущих сотрудников).
Любая помощь приветствуется. Спасибо