小编Thi*_*ost的帖子

React useMemo 钩子用例

语境

在阅读了 hooks 的官方文档后,我想在我的一个项目中尝试useMemo

为了测试它,我在这里设置了一个沙箱项目。

该示例在每次输入更改时使用昂贵的计算(请参阅“经过的毫秒”)。每次运行这种昂贵的计算时,计数器都会增加(参见“计数器”)。

Example 非常适合记忆,所以我使用useMemo hook,但结果不是我预期的,让我相信我在这里从根本上误解了一些东西。


预期的:

  • 首先呈现缓慢:计算&& 计数器递增值
  • 在没有计数器增量的情况下重新渲染近乎即时的计算

实际的:

尽管输入相同,但每次 && 计数器每次都会增加计算速度。

useMemo_example

同样,这里是该项目的链接。我的错误在哪里?

javascript reactjs react-hooks

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

将variant,vector <variant>和vector <vector <variant >>转换为我选择的等效类型

我的问题涉及C ++ 中boost::variant转换的混合std::vector。在我的项目中,我将变体用作SQL的输出。我将始终只使用一种类型的变体。我想做的是将变量,变量的向量或变量的2xvector轻松转换为我选择的等效类型。天真的,我需要一些类似的东西:

std::vector < int > my_variable = convert(some_variant_vector)
Run Code Online (Sandbox Code Playgroud)

首先是我的设置:

#include "boost\variant.hpp"
#include "boost\date_time\gregorian\gregorian.hpp"
typedef boost::variant< int, std::string, boost::gregorian::date> _var;
typedef std::vector<_var> _vec_var; 
typedef std::vector<_vec_var> _vec2_var;
Run Code Online (Sandbox Code Playgroud)

我想有一种简单的方法,可以根据需要将_var(或_vec_var_vec2_var)转换为int / string / date。从下面的帖子中,我知道我的答案应该类似于以下内容:

template<typename T>
struct converter_visitor : public boost::static_visitor<T>
{
    const _var &converter;
    converter_visitor(const _var &r) : converter(r) {}
    T operator()(const _var &) const{
        return boost::get<_var>(converter);
    }

    const _vec_var &v_converter;            // case of vector<>
    converter_visitor(const _vec_var &r) : …
Run Code Online (Sandbox Code Playgroud)

c++ boost vector type-conversion variant

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

浏览器原生滚动功能:如何检查兼容性

“大多数”浏览器中的功能滚动都可以使用,但似乎可以“重载”。在兼容性选项卡中,您会看到某些浏览器支持

element.scroll(scrollToOptions) 而其他人只支持 element.scroll(x, y)

如何检查当前浏览器支持哪种方法(尽管它具有相同的名称)?

javascript

3
推荐指数
1
解决办法
872
查看次数

SQL跨架构存储过程权限问题

给定一个简化的存储过程

CREATE OR ALTER PROCEDURE [FooSchema].[Foo]
AS
SELECT
    B.*,
    FROM [BarSchema].[Bar] AS B
    WHERE [...]
Run Code Online (Sandbox Code Playgroud)

将 EXEC 授予 FooSchema 上的用户而不是 BarSchema 上的用户后,此存储过程将失败并显示消息

The SELECT permission was denied on the object 'Bar',
Run Code Online (Sandbox Code Playgroud)

有没有办法让用户访问 [FooSchema].[Foo] 而不暴露 [BarSchema].[Bar] 的整个数据集,因为存储过程已经过滤掉了与该用户相关的数据。

sql t-sql sql-server

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