反应redux孩子useContext或简单选择

时间:2020-06-28 13:13:53

标签: reactjs redux react-redux react-hooks

我有一个父母在使用

const isAuthenticated = useSelector(selectIsAuthenticated);

还使用相同的选择器的最佳方法是什么

在孩子中

或使用类似

的上下文提供程序
  • 父母

  • 孩子

    const isAuthenticated = useContext(AuthContext);

2 个答案:

答案 0 :(得分:1)

通常,您重新使用选择器,因为它只是一个功能。

function notification(text) {
console.log(text)
alertify.success(text);
}

或将其用作自定义挂钩:

export const selectIsAuthenticated = state => state.isAuthenticated;

// Usage
import { selectIsAuthenticated } from './auth-selectors.js'

const isAuthenticated = useSelector(selectIsAuthenticated);

答案 1 :(得分:0)

要获取身份验证信息,最好的方法是使用

const isAuthenticated = useSelector(selectIsAuthenticated);

在所有需要身份验证信息的地方(也是第一个位置的自定义钩子的目的),以便在一个地方具有通用的重用逻辑。

为相同信息创建另一个上下文不会带来任何好处。

在这两种情况下,无论您再次使用Context还是使用Selector挂钩,只有上下文的使用者都将呈现。

因此在所有位置使用useSelector钩子可以避免您再次创建上下文的麻烦,而这又不会带来任何额外的好处。