我需要使用钩子(useSelector),但只想返回从redux获得的值

ryevplcw  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(191)

我想用一个普通的函数来连接redux store,并得到一个布尔值,我不想返回任何html元素,我该怎么做?

export function someFunction(){
    let isAdminProfile = useSelector(state => selectorFunction.isAdmin(state));
    return isAdminProfile
}
let value = someFunction()

"我需要这样的React“

nszi6y05

nszi6y051#

你可以构建一个自定义钩子来返回值,如下所示:

function useIsAdminProfile() {
    return useSelector(state => selectorFunction.isAdmin(state));
}

export default function MyComponent() {
    const isAdminProfile = useIsAdminProfile();

    return (
        <div>Is Admin: {isAdminProfile}</div>
    );
}

注意,按照惯例,钩子应该以use开头。例如,useIsAdminProfile。你可以在这里读到更多。

但是,如果你的最终目标是返回值本身,我不推荐这种方法,因为它会带来额外的开销,而且没有任何优势。相反,你在上面提到的代码片段中所得到的内容是完全正确的。另外,它还可以进一步缩短为以下内容:

const isAdminProfile = useSelector(selectorFunction.isAdmin);

相关问题