小编Har*_*Cho的帖子

如何使React CSS导入组件作用域?

我有几个组件具有以下CSS /组件结构

About/style.css

.AboutContainer {
    # Some style
}

p > code {
    # Some style
}
Run Code Online (Sandbox Code Playgroud)

我按如下方式在组件中导入CSS

About/index.js

import './style.css';

export default class About extends Component {
    render() {
         # Return some component
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,CSS将在该<header>部分中导入并保持全局范围.

我期待CSS是:

  1. 组件范围的方式是样式仅应用于在此组件中呈现的事物.
  2. 如果卸载组件,则此组件的样式将消失.

但是,在从浏览器进行检查时,会在该<header>部分指定样式并将其应用于所有组件

<header>
   // Stuff
   <style type="text/css">style for component About</style>
   <style type="text/css">style for component B</style>
   <style type="text/css">style for component C</style>
   // Stuff
</header>
Run Code Online (Sandbox Code Playgroud)

如何将CSS导入为组件范围?好像我正在理解React ES6中的CSS导入错误.

我正在学习本教程


编辑

Brett的回答是正确的.但是,我的问题变成了其他地方.我使用create-react-app创建了我的应用程序,它基本上简化了做React所需的设置.它包括WebPack,Babel和其他要开始的事情.它使用的默认WebPack配置没有设置模块选项, …

css reactjs

22
推荐指数
5
解决办法
2万
查看次数

参数c ++中的星号和&符号

我正在读一本关于二元搜索树的书,有些奇怪的东西出现了.

class BST
{
public:
   void insert(const Comparable & item)

private:
   BinaryNode *root;
   struct BinaryNode
   {
       Comparable element;
       BinaryNode *left;
       BinaryNode *right;
       BinaryNode(const Comparable & theElement, BinaryNode *lt, BinaryNode *rt) : 
          element(theElement), left(lt), right(rt) {}
   }
   void insert(const Comparable & item, BinaryNode * & t) const;
};
Run Code Online (Sandbox Code Playgroud)

private insert函数是函数的辅助函数public insert,private insert函数查找使用递归插入的正确位置.

我不明白的部分是BinaryNode * & t在参数中.这是什么意思?指针的地址t

c++ pointers reference memory-address

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

函数参数C++中的赋值运算符

我正在研究数据结构(列表,堆栈,队列),这部分代码让我感到困惑.

ListNode( const Object& theElement = Object(), ListNode * node = NULL);


template<class Object>
ListNode<Object>::ListNode( const Object& theElement, ListNode<Object> * node) {
    element = theElement;
    next = node;
}
Run Code Online (Sandbox Code Playgroud)
  1. 为什么函数参数中有赋值运算符?
  2. 什么Object()电话呢?

c++ parameters function-parameter assignment-operator

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

如何使用python使串口嗅探器嗅探物理端口

我有一个PC软件(操作系统:Win 64bit),通过物理串口RS232与机器通信,我想使用python为该端口制作一个嗅探器.请注意,我是串口的初学者.

我已经阅读了多个在线发布的文档和问题,但大多数都要求使用第三方软件,但我不能这样做,因为原始字节必须被解码成字符串消息(我有自己的解码/编码方法) ).

目前我的设置如下:

///////////////////       Physical COM1        /////////////
// (PC) Software // <------------------------> // Machine //
///////////////////                            /////////////
Run Code Online (Sandbox Code Playgroud)

我想要一个python输出通过COM1的任何字节.

期望的行为图(虚拟串口有一个问号,因为我不确定这是否是正确的方法):

///////////////////       Physical COM1        /////////////
// (PC) Software // <------------------------> // Machine //
///////////////////            | Virtual       /////////////
                               | serial port?
                               v
                        //////////////////
                        // (PC) Sniffer // (Python)
                        //////////////////
                               | 
                               v
                         (output bytes)
Run Code Online (Sandbox Code Playgroud)

谁知道高级串口监视器,它的"spymode"功能正是我想用python实现的.

我试过使用com0com和PortMon,但我找不到配置com0com来嗅探物理端口的方法(就我的观察而言,com0com只生成虚拟端口)而PortMon不支持Windows 64位.

我已经坚持了几天......任何评论/链接/答案都表示赞赏.谢谢,

python serial-port sniffer

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

如何更改 docker 中的默认分离键顺序?

Docker 容器的 detach 键序列默认为 control+q 或 control+p。有一个选项可以在启动容器时设置按键顺序,--detach-keys "<sequence>"但我正在寻找永久性的更改。

有没有办法将这个按键顺序更改为其他顺序?

docker

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

docker os 容器与应用程序容器

我不确定使用 docker 容器的最佳实践是什么。当我使用 VM(例如 ubuntu)来运行 Web 应用程序时,我会安装运行该应用程序所需的所有软件(例如数据库、Web 服务等),并像独立操作系统一样使用。

然而,Docker 可以以不同的方式使用。

假设我想运行一个 Web 应用程序,我有两个选择:

  1. 将所有软件安装在一个容器上;安装数据库、java 和运行所需的所有其他必要软件(即像我使用 VM 一样使用)。

  2. 将每个应用程序安装在单独的容器上;数据库在一个容器中,Web 服务在另一个容器中,并使它们相互通信。

选项 1) 似乎更容易部署全栈应用程序,但如果包之间存在一些依赖性复杂问题或为每个软件分配操作系统资源,则可能更难扩展。

选项 2) 似乎更难部署,但每个容器都可以升级而不会带来太多痛苦。

Docker 用户的常见做法是什么?

编辑:对此的回答也在https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container中注明

docker docker-container

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

如何在可执行文件的参数中包含回车符?

我有一个简单的程序,argv逐个字符打印,我想传递回车('\r' 或ASCII#0x0D)作为程序参数.如何在linux OS(Ubuntu)中实现这一目标?我正在使用bash.

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]) {
    int i;  

    for(i = 1; i < argc; i++) {     
        char* curr = argv[i];
        while(*curr != '\0') {
            printf("[%c %x] ", *curr, *curr);
            curr++;
        }
        printf("\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

假设我们的可执行程序被调用test,如果输入是:

./test hi
Run Code Online (Sandbox Code Playgroud)

然后我们得到

[h 68] [i 69]
Run Code Online (Sandbox Code Playgroud)

或者如果我想打印换行符,我用命令执行程序:

./test '[Enter Pressed]'
Run Code Online (Sandbox Code Playgroud)

然后我们得到

[
 0a] 
Run Code Online (Sandbox Code Playgroud)

我应该为程序参数键入什么,以便打印出回车符?或者更常见的是键盘不支持的任何ASCII字符?

executable ascii carriage-return command-line-arguments

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

如何在主线程执行某些操作时让一个线程侦听数据

我正在尝试创建一个线程来监听来自COM串口的传入数据,而主线程正在进行一些操作.

这是我的代码(为简洁起见省略了一些代码):

def readMsg( serial ):
    msgArray = []
    while ( True ):
        char = "0x" + serial.read().encode('hex')
        if char == '0xfd':
            msgArray = []
            msgArray.append(char)
        elif char == '0xfc':
            msgArray.append(char)
            print debugPrefix, "ComPort:", (serial.port + 1), msgArray
        elif char == '0x':
            pass
        else:
            msgArray.append(char)


# Find available ports                  
initializeComPorts() 

# Print port infos
printComPorts() 

# Opens serial and returns opened serial
serialPort = openPort(1);

print "thread started"
readMsgThread = threading.Thread( target=readMsg(serialPort) )
readMsgThread.setDaemon( True )
readMsgThread.start()

print "sending some …
Run Code Online (Sandbox Code Playgroud)

python multithreading

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

为什么Java ArrayList的remove()方法实现不会减小内部数组数据的大小?

对于add()方法,实现使得elementData\[\]数组的大小根据需要增长.但是,查看该remove()方法时,它不会随着元素的移除而缩小尺寸.

我使用一个简单的代码测试,并elementData[]开始10和增长.但是,当我使用remove()方法删除所有元素elementData[]时,在我完成添加所有元素的位置停留的大小.

int testSize = 10000000;

ArrayList<Integer> alist = new ArrayList<Integer>();
// size of elementData[] is 10
for(int i = 0; i < testSize; i++) {
    alist.add(i);
}
// size of elementData[] is 13845150
for(int i = alist.size()-1; i >= 0; i--) {
    alist.remove(i);
}
// size of elementData[] remains at 13845150
Run Code Online (Sandbox Code Playgroud)

这不是浪费记忆吗?

java arrays arraylist

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

Amazon DynamoDB 是否支持 HTTP/2?

根据https://github.com/aws/aws-sdk-go/issues/2984,Amazon DynamoDB 似乎不支持 HTTP/2。还有其他服务支持 HTTP/2,但不支持 Amazon DynamoDB。

我测试了https://docs.aws.amazon.com/general/latest/gr/ddb.html列表中的几个端点,它们似乎不支持它。

$ curl -v --http2-prior-knowledge https://dynamodb.us-east-1.amazonaws.com
*   Trying 52.119.233.242:443...
* TCP_NODELAY set
* Connected to dynamodb.us-east-1.amazonaws.com (52.119.233.242) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-dynamodb

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