小编jak*_*son的帖子

React 应用程序中的内容安全策略没有阻止在线脚本

我按照这篇文章将 CSP 添加到我现有的 React 应用程序中。我在那里完成了“使用内联脚本或样式”中编写的所有步骤,这是我的config-overrides.js文件:

const { override } = require('customize-cra');
const cspHtmlWebpackPlugin = require('csp-html-webpack-plugin');

const cspConfigPolicy = {
  'default-src': "'none'",
  'base-uri': "'self'",
  'object-src': "'none'",
  'script-src': ["'self'"],
  'style-src': ["'self'"],
  'img-src': ["'self'"],
};

function addCspHtmlWebpackPlugin(config) {
  if (process.env.NODE_ENV === 'production') {
    config.plugins.push(new cspHtmlWebpackPlugin(cspConfigPolicy));
  }

  return config;
}

module.exports = {
  webpack: override(addCspHtmlWebpackPlugin),
};
Run Code Online (Sandbox Code Playgroud)

为了测试它是否有效,我构建了应用程序npm run build(因为 CSP 刚刚添加到生产版本中),但在此之前,为了测试它是否有效,我将 jquery 添加到了里面的脚本中index.html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

不幸的是,jquery 被添加到构建中,CSP 没有阻止它。

在此处输入图片说明

难道我做错了什么?还是我误解了内容安全策略?

content-security-policy reactjs webpack

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

将 @testing-library/user-event 更新到 v.14 时出错

我正在遵循最新版本的所有说明@testing-library/user-event

前:

  test('request support action',() => {
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    userEvent.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });
Run Code Online (Sandbox Code Playgroud)

后:

  test('request support action', async () => {
    const user = userEvent.setup();
    
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    await user.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });
Run Code Online (Sandbox Code Playgroud)

requestSupport在更高的范围内被嘲笑const requestSupport = jest.fn();

我收到的错误是:

类型错误:range.cloneRange 不是函数

我的所有测试在库更新之前都通过了,现在全部失败了。

reactjs react-testing-library testing-library user-event

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

react-bootstrap-table - 格式化 - 行高,文本换行

我正在使用 react-bootstrap-table 并且我在格式化它时遇到了问题。主要问题是:

  • 具有长名称的标题应显示 2 行文本,而不是像下图所示的一个和“...”: 在此处输入图片说明

  • 此外,我无法设置表格单行的高度。每个文本都有很大的填充,因此表格不会太紧凑: 在此处输入图片说明

代码在这里:

<BootstrapTable
   data={this.props.sales}
   version="4"
   striped
   hover
   pagination
   keyField="Type"
>
  {tableHeaders.map((header, index) => (
     <TableHeaderColumn key={index} dataField={header.id} style={{ height: 10 }}>
        {header.name}
     </TableHeaderColumn>
  ))}
</BootstrapTable>
Run Code Online (Sandbox Code Playgroud)

css reactjs react-bootstrap-table

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

使用react-testing-library触发(调度)自定义事件

有没有办法用react-testing-library触发自定义事件?我在他们的文档中找不到这样的例子。

useEffect(() => {
  document.body.addEventListener('customEvent', onEvent);
}, []);
Run Code Online (Sandbox Code Playgroud)

我想触发自定义事件(例如fireEvent('customEvent')并测试是否onEvent被调用。

reactjs jestjs react-testing-library react-hooks testing-library

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

Haskell中最一般的类型并对其进行定义

您好,我的一些有关类型的uni Haskell练习存在问题。我可以为(*),map等函数定义类型,但是当我必须定义以下类型时,就会出现问题:

f 7 (g 'a')
Run Code Online (Sandbox Code Playgroud)

我如何开始呢?我知道我们应该使用一些最通用的统一器,但是我在互联网上找不到任何有关它的信息吗?

此外,还有另一项任务是在考虑类型的可能类别的情况下找到最通用的类型。

  • 折叠(++)
  • 平方(fx)
  • g代表功能:
    • g [] =无
    • g [x] =只是x
    • g(x:y:l)=如果x <y则x否则x y

这里最普通的类型是什么?在Haskell中这意味着什么,应该在这里做什么?如有任何解释,我将不胜感激。这不仅仅是准备考试的任何家庭作业,任何帮助都将受到欢迎。

haskell

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