小编ton*_*ony的帖子

为什么在有条件地使用react挂钩时eslint-plugin-react-hooks不警告?

我正在使用react 16.8和eslint-plugin-react-hooks 1.6.0。当我有条件地使用钩子时,我希望eslint会警告我。这是我的配置:

"eslintConfig": {
    "parser": "babel-eslint",
    "plugins": [
      "react-hooks"
    ],
    "rules": {
      "react-hooks/rules-of-hooks": "error",
      "react-hooks/exhaustive-deps": "warn"
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在自定义钩子中有条件地使用钩子,则会出现这样的警告:“有条件地调用React Hook \“ useState \”。在每个组件渲染中必须以完全相同的顺序调用React Hooks。”

function useCustomHook() {
  if (Math.random() > 0.5){
    const [a, setA] = useState(0)
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在函数组件中使用钩子,那将无法正常工作。

function MyComponent() {
  if (Math.random() > 0.5){
    const [a, setA] = useState(0)
  }
  return null
}
Run Code Online (Sandbox Code Playgroud)

reactjs eslint

7
推荐指数
2
解决办法
1018
查看次数

ServiceStack中的直通身份验证

我有两个ServiceStack服务器X和Y.Server X具有注册和验证用户的功能.它具有RegistrationFeature,CredentialsAuthProvider,MemoryCacheClient和MongoDbAuthRepository功能来处理身份验证.最近,我介绍了服务器Y和GUI表单,它们与服务器Y通信以处理我的业务域的另一部分.服务器Y需要向服务器X上的经过身份验证的端点发出请求.

如何配置服务器Y,使其在从GUI表单获取登录请求时,将该职责传递给可以访问用户信息的服务器X?

我尝试在服务器Y中实现自定义CredentialsAuthProvider,如下所示:

public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
{
    // authenticate through server X
    try
    {
        var client = new JsonServiceClient("http://localhost:8088");
        var createRequest = new Authenticate
        {
            UserName = userName,
            Password = password,
            provider = Name,
        };

        var authResponse = client.Post(createRequest);
        return true;
    }
    catch (WebServiceException ex)
    {
        // "Unauthorized
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但后来当我尝试从服务器Y中的服务向服务器X中的经过身份验证的端点发出请求时,我收到了Unauthorized错误.

public class MyServices2 : Service
{
    public object Any(TwoPhase request)
    {
        try
        {
            // make a request to server X …
Run Code Online (Sandbox Code Playgroud)

c# servicestack

6
推荐指数
1
解决办法
517
查看次数

链接到 Cognito 用户池的 AWS Amplify GraphQL 架构

我正在使用 AWS Amplify 创建一个网站平台,该平台主要用作其注册用户的目录,具有与业务领域相关的各种属性。该平台的两个主要的用户将被注册用户和正常的未经验证的用户谁就能名单,并根据他们的属性,如注册用户筛选locationage等注册用户将被设置在会员区全部属性。

一些属性存储在 Cognito 中,例如nameaddress并且使用 Amplify Authentication设置。这些是我希望通过 Amplify GraphQL功能进行查询和变异的字段

我可以看到使用@auth 指令可以实现很酷的授权模式。

是否可以利用 GraphQL 转换,以便我可以创建一个模型模式,其中一些字段链接到 Cognito 用户池,而另一些字段在 GraphQL 模式中定义,以便它们可查询和可变?事实上,我想为注册用户提供更新除电子邮件之外的所有字段的功能。或者,我可以将 Amplify 支持的某些服务组合在一起以实现相同的目标?

我是 AWS Serveless 生态系统的新手,到目前为止,它一直令人兴奋!

amazon-web-services aws-cloudformation amazon-cognito graphql aws-amplify

6
推荐指数
1
解决办法
1038
查看次数

如何在Angular 2中为多个子组件提供单独的服务实例

我有一个应用程序,其中有许多情况带有搜索框,它们的主从视图非常相似。因此,我决定通过服务实现组件之间的通信,将通用功能包装到其自己的模块中。这是层次结构:

MyGenericGridModule
    SearchComponent
    MasterGridComponent
    DetailsComponent
    GridService <-- stateful

AppModule
    CitiesGridComponent
    RetailersGridComponent
Run Code Online (Sandbox Code Playgroud)

我打算创建多个视图,MyGenericGridComponent说明将通过CSS在何处实现布局差异。这是快速的插图: 在此处输入图片说明 如何确保GridService为两个相关组件提供单独的实例?

到目前为止,我还没有找到能说明这种情况的阅读材料。我读过的书提到服务应该共享和单例。这使我相信我不正确地解决了这个问题。有没有可以构造组件的更合适的模式?

dependency-injection angular

4
推荐指数
1
解决办法
1611
查看次数

在边缘保留网络登录

我正在 Microsoft Edge 上调试应用程序,我想知道是否有办法保留网络日志?

在页面重定向到另一个请求之前,我需要检查一个请求。

browser debugging microsoft-edge

0
推荐指数
1
解决办法
3798
查看次数

为数组中的每两个元素创建对

如何简洁地编写一个函数,使其使用数组中的每一对元素创建一个新的对象数组?

假设元素数为偶数。

示例输入:

input = [1, 42, 55, 20, 3, 21]
Run Code Online (Sandbox Code Playgroud)

输出:

output = [{x:1, y:42}, {x:55, y:20}, {x:3, y:21}]
Run Code Online (Sandbox Code Playgroud)

编辑:这是我不喜欢的当前解决方案:

[1, 42, 55, 20, 3, 21].reduce(
    (acc, curr, i) => (
      i % 2 === 0
        ? [...acc, { x: curr }]
        : [...acc.slice(0, -1), { x: acc[acc.length - 1].x, y: curr }]), []
  )
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
440
查看次数