我目前有一个呼叫屏幕:
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实际上返回一些东西,因为它在filter方法中使用currentBusiness.Id。
我有两个问题:
如果我将第二个useSelector
放在if
的条件下的currentBusiness === true
语句中,该如何在{{1 }}语句,因为我的VSCode向我显示,一旦嵌套在employeeArray
语句中,我就只能在其中调用它。
在我解决了第一个问题的情况下,如何防止出现“渲染的钩子比上次渲染期间更多的钩子”错误,因为如果currentBusiness为false,我将不会执行if
在if
语句中(我将渲染一个特定的屏幕),但是当它为true时,我将执行另一个导致错误的钩子。 (我将呈现另一个屏幕,列出所有当前雇员)。
感谢您的帮助。 谢谢