小编Fez*_*sta的帖子

样式输入和按钮 - 高度问题

我正在尝试设置一个干净的CSS来设置按钮的样式,以便在视觉上看起来与近输入字段合并.

例

我目前正在使用这个CSS:

button {
    position: relative;
    left: -4px;
    box-sizing: border-box;
    padding: 0 10px;
    margin: 0;
    font-size: 17px;
    border: 1px solid gray;
    border-radius: 0 3px 3px 0;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/GRwqL/

主要问题是left属性的使用,我不认为这是一个好习惯,主要是因为它在所有浏览器上都没有正确处理.
另一个问题是Internet Explorer和Firefox中的此代码使按钮不高作为输入字段.

所以我正在寻找一些帮助,以编写更好的代码跨浏览器和更清洁.
就个人而言,我不在乎是否需要一个包装元素或任何其他HTML元素,我只需要一个干净的代码,跨浏览器,并且运行良好.

html css

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

在同一组件的所有实例之间共享状态?

我有一个工具提示组件,悬停时会显示一个简单的工具提示。

当您使用mouseLeave该组件时, asetTimeout会触发,当它结束时,工具提示将关闭 ( setState({ open: false }))。

现在我想添加一种行为来反映本机操作系统工具提示之一:

当您使用mouseLeave一个工具提示,但立即打开mouseEnter一个不同的工具提示时,前一个工具提示会立即关闭,并打开新的工具提示。

为此,我需要在工具提示组件的所有实例之间拥有共享状态。我可以使用 Redux,但对于如此简单的任务来说,它似乎有点大材小用(我需要一个与存储交互并提供可用操作和属性的容器)。

有更简单的解决方案吗?

reactjs

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

流程抱怨对象默认值解构中的类型不兼容

我要使用Flow验证这个非常简单的功能:

// @flow
type Props = {
  width: string | number,
};

function fun({
  width = '30em',
}: Props) {
  return width;
}
Run Code Online (Sandbox Code Playgroud)

问题是我收到此错误:

8:   width = '30em',
     ^ number. This type is incompatible with
8:   width = '30em',
     ^ string
8:   width = '30em',
     ^ string. This type is incompatible with
8:   width = '30em',
     ^ number
8:   width = '30em',
             ^ string. This type is incompatible with
8:   width = '30em',
     ^ number
Run Code Online (Sandbox Code Playgroud)

我想知道我做错了什么...这种其他方式可以正常工作:

// @flow
type Props …
Run Code Online (Sandbox Code Playgroud)

javascript flowtype

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

根据依赖列表排序对象数组?

我需要订购一个对象数组,由一个名称和一个依赖列表(由名称组成)组成.

这个数组的一个例子可能是:

[
  { name: 'a', requires: ['b', 'c'] },
  { name: 'b', requires: ['c'] },
  { name: 'c', requires: [] },
]
Run Code Online (Sandbox Code Playgroud)

我希望对这个数组进行排序,以便需要一组特定依赖项的项目将位于其所需的依赖项之后.
该数组实际上可以包含更多项目,如果排序函数在循环依赖项的情况下抛出错误,我没关系.

示例输出:

[
  { name: 'c', requires: [] }, // first, no dependencies, and required by both the others
  { name: 'b', requires: ['c'] }, // second, because it needs `c` first
  { name: 'a', requires: ['b', 'c'] }, // last, because requires both the others
]
Run Code Online (Sandbox Code Playgroud)

什么是最简洁的方法呢?

javascript sorting

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

动态 GraphQL 架构?

我有一个将提交表单数据的突变,此数据可能因您填写的表单而异。

表单将很多,它们将共享相同的“步骤”(每个表单由 1 个或多个页面/步骤组成)。

所以,我们可能有这些可重用的步骤:

  • 喜欢的水果
  • 出生日期
  • 名和姓

而这两种形式:

  • 通用信息 ( genericInfo):姓名 + 出生日期
  • 你吃什么?( whatYouEat): 名字和姓氏 + 喜欢的水果

我需要一种方法来进行单个突变,它允许定义表单名称,并采用 data根据此类表单名称需要验证对象。

例如,如果我称这个突变为:

submitForm(formName: $formName, formData: $formData) {
  resultMessage
}
Run Code Online (Sandbox Code Playgroud)

使用formNameset togenericInfoformDataset to { nameAndSurname: 'Foo Bar', favFruit: 'apple' },它应该抛出一个错误,因为genericInfo不期望favFruit,但是dateOfBirth

这可以用 GraphQL 实现吗?有没有更好的方法来这里?

apollo graphql

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

使用 http-proxy-middleware 处理 WebSocket 错误

我用来http-proxy-middleware将一些 API 端点代理到我的 Create React App 开发服务器。

我最近引入了一个 WebSocket 端点,并使用以下代码来代理它setupProxy.js

const proxy = require('http-proxy-middleware');

const target = 'http://localhost:8000';

module.exports = function(app) {
  [...] // other proxies for HTTP endpoints
  app.use(proxy('/api/ws', { ws: true, target }));
};

Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果我重新启动后端,并且 WebSocket 连接中断,整个开发服务器就会崩溃:

[HPM] Upgrading to WebSocket
events.js:170
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:171:27)
Emitted 'error' event at:
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processTicksAndRejections (internal/process/task_queues.js:81:17)
error Command failed with exit code …
Run Code Online (Sandbox Code Playgroud)

websocket node.js express http-proxy-middleware

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

.htaccess,将404错误重写到其他域

如何将所有404错误重定向到另一个域?

我找到了

Error 404 http://example.com/error.html
Run Code Online (Sandbox Code Playgroud)

但是我需要:

if Error 404 (.*) http://example.com/$1
Run Code Online (Sandbox Code Playgroud)

我试过了:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://example.com/$1
Run Code Online (Sandbox Code Playgroud)

但它重定向了所有请求,实际上如果我运行.php脚本生成一个带有404链接的页面,脚本的URL就变成了

http://example.com/script.php
Run Code Online (Sandbox Code Playgroud)

相反,URL应该保持不变,只有404链接应该重定向到另一个域.

解决方案?

apache .htaccess mod-rewrite

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

Imagick和PHP的问题

使用Imagick的PHP脚本在运行时给出了这个错误:

致命错误:第320行的/var/www/vhosts/example.com/script.php中找不到"Imagick"类

如果我php从SSH 运行它会给我这个警告:

PHP警告:PHP启动:无法加载动态库'/usr/lib/php/modules/imagick.so' - /usr/lib/php/modules/imagick.so:未定义符号:php_checkuid_ex在第0行的未知

奇怪的是,Imagick总是有效......我试图安装它,但它说已经安装了所有东西.

lib位于正确的位置:

# locate imagick.so
/usr/lib/php/modules/imagick.so
Run Code Online (Sandbox Code Playgroud)

我试图切换到imagick的测试版,因为似乎Imagick有问题与PHP版本5.4.2,但问题没有得到解决:

pear config-set preferred_state beta
pecl upgrade imagick
Run Code Online (Sandbox Code Playgroud)

当我尝试升级时,配置失败:

错误:无法找到MagickWand.h或magick-wand.h标头错误:`/ var/tmp/imagick/configure --with-imagick'失败

所以,我已经创建了一个符号链接magick-wand.h/usr/include/ImageMagick/wand/MagickWand.h,但现在的错误是在化妆:

/var/tmp/imagick/imagick_helpers.c:859: error: 'PaletteBilevelMatteType' undeclared (first use in this function)
/var/tmp/imagick/imagick_helpers.c:859: error: (Each undeclared identifier is reported only once
/var/tmp/imagick/imagick_helpers.c:859: error: for each function it appears in.)
make: *** [imagick_helpers.lo] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

php imagick

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

react-router browserHistory removeListen?

我订阅路线更改

browserHistory.listen(fn)
Run Code Online (Sandbox Code Playgroud)

但是我如何取消订阅?

我已经尝试过分配listen null,但它抱怨不是一个功能.

reactjs react-router

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

npm 中的“popper”和“popper.js”是两个不同的包吗?

我正在学习使用此命令安装 popper: 的教程 npm install popper --save。但是当我尝试它时收到此错误消息:致命错误 - 检测到 cygheap base mismatch - 0x13A1410/0x13D1410

所以我搜索找到这个库的github页面并找到了这个页面:https : //github.com/FezVrasta/popper.js但我看到它建议使用这个命令来安装它:npm install popper.js --save它与我的教程不同。现在我想知道这些对图书馆有什么不同吗?如果它们不同,那么poppenot的 github 页面popper.js是什么?

我还必须提到,我没有说 python popper 库。我想要 .js 使用的 javascript 版本bootstrap4

npm bootstrap-4 popper.js react-popper popperjs

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