小编Nic*_*han的帖子

为 React Context 实现 useSelector 等价物?

有很多文章展示了如何用上下文和钩子替换 Redux(例如,参见Kent Dodds 的这篇文章)。基本思想是通过上下文使您的全局状态可用,而不是将其放在 Redux 存储中。但是这种方法有一个大问题:订阅上下文的组件将在上下文发生任何更改时重新呈现,无论您的组件是否关心刚刚更改的状态部分。对于函数式组件,React-redux 通过useSelector hook解决了这个问题. 所以我的问题是:是否可以创建像 useSelector 这样的钩子,它会抓取一段上下文而不是 Redux 存储,具有与 useSelector 相同的签名,并且就像 useSelector 一样,只会在“选择”部分上下文发生了变化?

(注意:React Github 页面上的这个讨论表明它不能完成)

reactjs redux react-redux react-context react-hooks

9
推荐指数
4
解决办法
7145
查看次数

我们如何确定 Javascript 中字符串的引用相等性?

Javascript 有没有办法确定两个字符串是否指向内存中的同一位置?我知道对于对象, ===、== 和 Object.is 可以用于此目的(请参阅MDN:比较运算符MDN:Object.is()),但是当在字符串上使用时,这些将比较内容字符串的,而不是它们的引用......

javascript

7
推荐指数
1
解决办法
1191
查看次数

更改 chrome.identity.getAuthToken 的 Google 帐户

我在 Chrome 扩展程序中使用身份 API来验证用户身份并向我的后端证明他们是谁。这在大多数情况下都可以正常工作,我使用getAuthToken来获取发送到服务器的 OAuth 访问令牌,服务器用它来确认用户的身份。

唯一的问题是:第一次调用 getAuthToken 时,系统会要求用户从当前登录的帐户列表中选择一个 Google 帐户。此后对 getAuthToken 的任何调用都只是继续重复使用同一 Google 帐户而不提示用户。我想让用户稍后能够选择不同的 Google 帐户。看起来clearAllCachedAuthTokens正是我所需要的 - 而且它有效 - 但只有当所选的Google帐户不是登录Chrome的帐户时。在这种情况下,clearAllCachedAuthTokens 不会执行任何操作。

我发现重置 getAuthToken 锁定的 Google 帐户的唯一方法是让用户退出 Chrome,即使用户选择了登录 Chrome 的 Google 帐户,该方法也能正常工作,这既烦人又尴尬。有没有更好的办法?

google-chrome-extension oauth-2.0 google-oauth google-identity

5
推荐指数
1
解决办法
713
查看次数

在哪里可以找到ASP.NET Core MVC中的模型绑定错误?

在对对象执行模型绑定时,如果任何对象的属性存在类型不匹配,则框架似乎将返回null.例如,考虑这个简单的例子:

public class Client
{
    public string Name { get; set; }
    public int Age { get; set; }
    public DateTime RegistrationDate { get; set; }
}

public class ClientController : Controller
{
    [HttpPatch]
    public IActionResult Patch([FromBody]Client client)
    {
        return Ok("Success!");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我提交"ASDF"的HTTP请求年龄属性的值,整个客户端的参数将在贴片法空,不管什么已提交的其他属性.RegistrationDate属性也是一样.因此,当您的控制器操作中的FromBody参数为null时,您如何知道哪些错误导致模型绑定失败(在这种情况下,哪个提交的属性具有错误的类型)?

c# asp.net-core-mvc asp.net-core

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