小编Sho*_*ota的帖子

React/Redux - 对app load/init的调度操作

我从服务器获得令牌认证,所以当我最初加载我的Redux应用程序时,我需要向该服务器发出请求以检查用户是否经过身份验证,如果是,我应该获得令牌.

我发现不建议使用Redux核心INIT操作,那么在呈现应用程序之前如何调度操作呢?

reactjs redux

65
推荐指数
6
解决办法
5万
查看次数

org.hibernate.dialect.PostgreSQLDialect已弃用

我刚刚将Hibernate的配置添加到我的应用程序中,IntelliJ Idea抱怨这个方言已被弃用:

<property name="hibernate.dialect">
   org.hibernate.dialect.PostgreSQLDialect
</property> 
Run Code Online (Sandbox Code Playgroud)

在互联网上似乎不是一个明确的解决方案,任何建议?

java hibernate

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

Angular 4/5 - 路线paramMap vs params

我想在我的Angular 5应用程序中获取URL参数,我发现了两种方法:

1)使用 paramMap

    ngOnInit() {
      this.hero$ = this.route.paramMap
        .switchMap((params: ParamMap) =>
          this.service.getHero(params.get('id')));
    }
Run Code Online (Sandbox Code Playgroud)

2)使用params:

    ngOnInit() {
      this.sub = this.route.params.subscribe(params => {
        this.id = +params['id'];
      });
    }
Run Code Online (Sandbox Code Playgroud)

有什么区别吗?哪一个是最好的做法?

typescript angular

21
推荐指数
3
解决办法
2万
查看次数

将包装器组件作为ReactJS中的props传递

我试图将包装器组件作为道具传递.React在技术上是否可以这样?

import React, {Component, PropTypes} from 'react';
import ChildComp from './child-comp';

class Comp extends Component {
  render() {
    const { Wrapper } = this.props;
    return (
      <Wrapper>
        <ChildComp />
      </Wrapper>
    );
  }
}

Comp.propTypes = {};

export default Comp;
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

React-testing-library 测试 Ant Design 模式

我有一个 React 组件,里面有 Ant Design Modal,我正在尝试测试当单击按钮时模态是否打开:

组件:

const ModalComponent = () => {
  const [visible, setVisible] = useState(false);
  return (
    <>
      <Button type="primary" onClick={() => setVisible(true)}>
        Open Modal
      </Button>
      <Modal
        title="Modal title"
        centered
        visible={visible}
        onOk={() => setVisible(false)}
        onCancel={() => setVisible(false)}
      >
        <p>some contents...</p>
        <p>some contents...</p>
        <p>some contents...</p>
      </Modal>
    </>
  );
};

Run Code Online (Sandbox Code Playgroud)

测试文件:

test('modal opening', async () => {
  const { queryByText } = render(<ModalComponent />);

  fireEvent.click(queryByText('Open Modal'));

  await waitFor(() => expect(queryByText('Modal title')).toBeInTheDocument());
});
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试调试时,模态 DOM 永远不会在测试中呈现,因此测试失败。发生这种情况的原因可能是模态内容是在 body 标记内的组件 DOM 树外部创建的?

reactjs jestjs antd react-testing-library

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

导入 moment.js 部分或函数

有什么办法可以避免导入整个库而只导入一个函数或其中的一部分?

例如使用 lodash 你可以做这样的事情: import has from 'lodash/has';

示例是:

import moment from 'moment';
moment.months()
Run Code Online (Sandbox Code Playgroud)

我知道最新的 webpack 可以自动处理它,但问题是针对旧的 webpack (1.0)

javascript momentjs ecmascript-6

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

Array.from 的时间复杂度

的时间复杂度是多少Array.from()。例如:

const set = new Set();
set.add('car');
set.add('cat');
set.add('dog');

console.log(Array.from(set)); // time complexity of making this convertion from Set to Array
Run Code Online (Sandbox Code Playgroud)

javascript time-complexity ecmascript-6

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

WebStorm - 实时模板 - 指示聚焦同一变量的顺序

我感兴趣的是,如果有一个意思是指示变量名称应该从哪里开始

例如,如果我称这个实时模板:

console.log('$TEXT$', $TEXT$);
             ^
Run Code Online (Sandbox Code Playgroud)

它将从第一个TEXT变量开始写入.

我想从第二篇开始写作:

console.log('$TEXT$', $TEXT$);
                      ^
Run Code Online (Sandbox Code Playgroud)

jetbrains-ide webstorm

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

Lodash - 检查对象是否包含数组中的任何键

所以我有一个对象和数组.我想检查对象是否包含数组中的任何键.像这样的东西:

宾语:

const user = {
    firstname: 'bob',
    lastname: 'boblastname'
    email: 'bob@example.com'
}
Run Code Online (Sandbox Code Playgroud)

阵列:

const lastname = ['lastname'];
const userDetails = ['firstname', 'email'];
Run Code Online (Sandbox Code Playgroud)

因此,在检查密钥存在时,它应该返回true.例:

_.includesKey(user, lastname) // true
_.includesKey(user, userDetails ) // true
Run Code Online (Sandbox Code Playgroud)

javascript lodash

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

React-testing-library 或 Cypress - 添加多个数据测试 ID

我有一个可选择的框,因此我想为该框添加两个测试 ID,一个用于测试框的类型,另一个用于测试框是否被选中。我应该在一个 data-testid 中添加两个 data-testid 属性还是两个关键字?当涉及到 Cypress 或 React-testing-library 时,最佳实践是什么?

<div data-testid="box-user" data-testid="box-user-active">
Run Code Online (Sandbox Code Playgroud)

<div data-testid="box-user box-user-active">
Run Code Online (Sandbox Code Playgroud)

我知道还有其他方法可以检查该框是否被选中,但是还有很多其他用例,添加两个测试 ID 会让事情变得更容易。

javascript jestjs cypress react-testing-library

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