我从服务器获得令牌认证,所以当我最初加载我的Redux应用程序时,我需要向该服务器发出请求以检查用户是否经过身份验证,如果是,我应该获得令牌.
我发现不建议使用Redux核心INIT操作,那么在呈现应用程序之前如何调度操作呢?
我刚刚将Hibernate的配置添加到我的应用程序中,IntelliJ Idea抱怨这个方言已被弃用:
<property name="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect
</property>
Run Code Online (Sandbox Code Playgroud)
在互联网上似乎不是一个明确的解决方案,任何建议?
我想在我的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)
有什么区别吗?哪一个是最好的做法?
我试图将包装器组件作为道具传递.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) 我有一个 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 树外部创建的?
有什么办法可以避免导入整个库而只导入一个函数或其中的一部分?
例如使用 lodash 你可以做这样的事情: import has from 'lodash/has';
示例是:
import moment from 'moment';
moment.months()
Run Code Online (Sandbox Code Playgroud)
我知道最新的 webpack 可以自动处理它,但问题是针对旧的 webpack (1.0)
的时间复杂度是多少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) 我感兴趣的是,如果有一个意思是指示变量名称应该从哪里开始
例如,如果我称这个实时模板:
console.log('$TEXT$', $TEXT$);
^
Run Code Online (Sandbox Code Playgroud)
它将从第一个TEXT变量开始写入.
我想从第二篇开始写作:
console.log('$TEXT$', $TEXT$);
^
Run Code Online (Sandbox Code Playgroud) 所以我有一个对象和数组.我想检查对象是否包含数组中的任何键.像这样的东西:
宾语:
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) 我有一个可选择的框,因此我想为该框添加两个测试 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 ×5
reactjs ×3
ecmascript-6 ×2
jestjs ×2
angular ×1
antd ×1
cypress ×1
hibernate ×1
java ×1
lodash ×1
momentjs ×1
redux ×1
typescript ×1
webstorm ×1