Javascript 如何组合自定义挂钩和选择器结果?
我有一个自定义钩子,也有一些选择器,需要根据这两个选项的组合设置最终标志。 我不能简单地编写一个结合了下面代码的函数,因为钩子或选择器都不能在react FC之外使用 使整个块成为一个可重用函数的最佳方法是什么Javascript 如何组合自定义挂钩和选择器结果?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我有一个自定义钩子,也有一些选择器,需要根据这两个选项的组合设置最终标志。 我不能简单地编写一个结合了下面代码的函数,因为钩子或选择器都不能在react FC之外使用 使整个块成为一个可重用函数的最佳方法是什么 // selector const { activeIntents, writeRole, intents, permalink } = useSelector(state => state.companyIntentsReducer); // custom hook
// selector
const { activeIntents, writeRole, intents, permalink } = useSelector(state => state.companyIntentsReducer);
// custom hook
const { hasExtendedRoleForCompany } = useJwtRoles();
// func calling the custom hook
const intentWrite = hasExtendedRoleForCompany("intent-manage-write", permalink);
// final result combines both
const editMode = writeRole && intentWrite
自定义挂钩可以使用选择器吗?您应该编写一个类似于:
const useEditMode = () => {
const { activeIntents, writeRole, intents, permalink } = useSelector(
(state) => state.companyIntentsReducer
);
const { hasExtendedRoleForCompany } = useJwtRoles();
const intentWrite = hasExtendedRoleForCompany(
"intent-manage-write",
permalink
);
return { isEditMode: writeRole && intentWrite };
};
export default useEditMode;
// Usage inside function component
const { isEditMode } = useEditMode();
很好,所以自定义挂钩可以使用redux选择器?自定义挂钩可以使用(如
useSelector
)。不知道“使用redux选择器”是什么意思,“选择器”是传递给useSelector
和mapDispatchToProps
等的纯函数代码>通常导致React钩子“useSelector”在函数“x”中调用,该函数既不是React函数组件,也不是自定义React钩子函数代码>实际使用时。但是您基本上已经回答了这个问题,所以是的,没有问题反应FC必须大写并返回JSX元素,自定义钩子必须使用前缀,没有魔法解析只是重新定义