我想styled-components在React应用程序中使用它来创建一个菜单组件,该菜单组件在同一文件中包含样式,从而使其变得非常模块化。我正在使用react-burger-menu菜单。如果我BurgerMenu使用如下样式包装所有样式div(从react-burger-menuREADME.md 复制的样式),则一切正常:
import React from 'react';
import { slide as BurgerMenu } from 'react-burger-menu';
import styled from 'styled-components';
const StyledBurgerMenu = styled.div`
/* Position and sizing of burger button */
.bm-burger-button {
position: fixed;
width: 36px;
height: 30px;
left: 36px;
top: 36px;
}
/* Color/shape of burger icon bars */
.bm-burger-bars {
background: #373a47;
}
/* Position and sizing of clickable cross button */
.bm-cross-button {
height: 24px;
width: 24px; …Run Code Online (Sandbox Code Playgroud) 下面的代码生成了一个JavaFX Canvas,可以使用鼠标指针绘制但跳过一些点,即,如果试图绘制一条连续线,则留下间隙.随着指针速度的增加,间隙加剧.
导致这种行为的原因是什么以及如何实现良好连接的生产线? (注意,我正在寻找一个明确切换指针传递给黑色的每个像素的答案,而不是平滑或连接点等操作)
public class DrawingSample extends Application {
public void start(Stage stage) {
FlowPane flowPane = new FlowPane();
Canvas canvas = new Canvas(300, 300);
flowPane.getChildren().add(canvas);
GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
graphicsContext.setFill(Color.WHITE);
graphicsContext.fillRect(0, 0, 300, 300);
canvas.setOnMouseDragged((event) -> {
graphicsContext.setFill(Color.BLACK);
graphicsContext.fillRect(event.getX(), event.getY(), 1, 1);
});
stage.setScene(new Scene(flowPane));
stage.show();
}
public static void main(String[] args) {
launch(DrawingSample.class);
}
}
Run Code Online (Sandbox Code Playgroud)
下图显示了在我们下降时以增加的速度从左到右绘制的三条线.
我正在尝试将http://dev.hsl.fi/tmp/citybikes/stations_20170503T071501Z上的数据解析为Pandas DataFrame.使用read_json给我一个dicts列表而不是一个正确的DataFrame,变量名称为列:
In [1]:
data = pd.read_json("http://dev.hsl.fi/tmp/citybikes/stations_20170503T071501Z")
print(data)
Out[1]:
result
0 {'name': '001 Kaivopuisto', 'coordinates': '60...
1 {'name': '002 Laivasillankatu', 'coordinates':...
.. ...
149 {'name': '160 Nokkala', 'coordinates': '60.147...
150 {'name': '997 Workshop Helsinki', 'coordinates...
[151 rows x 1 columns]
Run Code Online (Sandbox Code Playgroud)
所有orient选项都会发生这种情况 我试着json_normalize()无济于事,还有其他一些我在这里找到的东西.我怎么能把它变成一个合理的DataFrame?谢谢!
我想用JUnit测试以下方法:
private static boolean systemIsWindows() {
String os = System.getProperty("os.name").toLowerCase();
return os.startsWith("win");
}
Run Code Online (Sandbox Code Playgroud)
坦白说,我想出的唯一一件事就是基本上将相同的逻辑复制到测试中。当然,这可以防止该方法被意外破坏,但是听起来有点违反直觉。
有什么更好的方法来测试此方法?
我正在尝试安装 R (v3.6.1) 的 devtools 包install.package("devtools"). 当找不到 openssl 时,安装失败,尽管openssl version -a表明已安装 LibreSSL 2.8.3。操作系统是 macOS 10.15.1。
这是控制台日志:
\n\n* installing *source* package \xe2\x80\x98openssl\xe2\x80\x99 ...\n** package \xe2\x80\x98openssl\xe2\x80\x99 successfully unpacked and MD5 sums checked\n** using staged installation\nHomebrew 2.2.0\nHomebrew/homebrew-core (git revision 434f; last commit 2019-12-03)\nHomebrew/homebrew-cask (git revision deedf; last commit 2019-12-03)\nUsing PKG_CFLAGS=-I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/openssl/include\n------------------------- ANTICONF ERROR ---------------------------\nConfiguration failed because openssl was not found. Try installing:\n * deb: libssl-dev (Debian, Ubuntu, etc)\n * rpm: openssl-devel (Fedora, CentOS, RHEL)\n * csw: libssl_dev …Run Code Online (Sandbox Code Playgroud) 我想Cypress.Commands.overwrite()用来使该cy.visit()方法做它通常做的事情,然后等待加载器元素不再在 DOM 中,表明 AJAX 请求已完成。我的目标正是这个,而不是创建一个新命令。原因是为了避免出现这样的情况,例如,某人可能会在不知情的情况下使用未修改的cy.visit()元素,然后断言某些元素不存在,而这些元素可能存在但尚未加载。
在覆盖默认命令时,我似乎遇到了赛普拉斯使用承诺的问题。从手册中,很清楚如何cy.visit()在调用原始函数之前做一些事情时进行覆盖。但是,我找不到一个例子,其中首先调用原始函数,然后才发生自定义的东西。
所以我想用这个overwrite()命令做的是:
Cypress.Commands.add('visitAndWait', (url) => {
cy.visit(url);
cy.get('[data-cy="loader"]').should('not.exist');
});
Run Code Online (Sandbox Code Playgroud)
我已经测试并可以确认上述内容可以满足我的需要。这里有一些尝试使这项工作作为覆盖,所有这些都失败了:
Cypress.Commands.overwrite('visit', (originalFn, url, options) => {
return originalFn(url, options).then(() => cy.get('[data-cy="loader"]').should('not.exist'));
});
Cypress.Commands.overwrite('visit', async (originalFn, url, options) => {
const res = await originalFn(url, options);
await cy.get('[data-cy="loader"]').should('not.exist');
return res;
});
Run Code Online (Sandbox Code Playgroud)
两者都失败了:
Cypress.Commands.overwrite('visit', (originalFn, url, options) => {
originalFn(url, options);
return cy.get('[data-cy="loader"]').should('not.exist');
});
Run Code Online (Sandbox Code Playgroud)
最后一个失败了:
在 Cypress 中这种覆盖是否可能,如果是,它是如何完成的?谢谢!
编辑:
在最后一种情况下导致错误的测试代码在这里:
cy.visit('/');
cy.get('[data-cy="switch-to-staff"]').click();
Run Code Online (Sandbox Code Playgroud)
基本上它通过单击应该模拟员工角色的按钮来测试用户角色模拟面板。