小编Sha*_*ane的帖子

React.PropType有两种可能的形状

背景:我正在尝试为尺寸规范指定道具类型,我可以指定显式值,或者要评估的最小值和最大值.这将由图像组件使用,该组件将评估图像是否是用户生成的输入的可接受高度和宽度.

抽象的目标是让React props值解析为两种可能的形状之一.


每种形状都可以自己工作

宽度的显式值将具有以下形状:

{
    width: PropTypes.shape({
        value: PropTypes.number.isRequired,
        error: PropTypes.string
    })
}
Run Code Online (Sandbox Code Playgroud)

一个最小和最大价值将有这样的形状:

{
    width: PropTypes.shape({
        min: {
            value: PropTypes.number.isRequired,
            error: PropTypes.string
        }, max: {
            value: PropTypes.number.isRequired,
            error: PropTypes.string
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如在接受的答案中所指出的,这个块中有一个我没有抓到的错误.由于某种原因,它没有给我一个运行时错误,但这不是嵌套形状的工作示例,请参阅正确语法的答案.

如果我尝试这些方法中的任何一个并且属性匹配,一切都按预期工作,所以我可以安全地假设错误来自下面的代码.


什么行不通

我尝试使用OptionalUnion,如React类型检查文档中所示,通过PropTypes.oneOfType,语法如下.

{
    width: PropTypes.oneOfType([
        PropTypes.shape({
            value: PropTypes.number.isRequired,
            error: PropTypes.string
        }), PropTypes.shape({
            min: {
                value: PropTypes.number.isRequired,
                error: PropTypes.string
            }, max: {
                value: PropTypes.number.isRequired,
                error: PropTypes.string
            }
        })
    ])
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到了回应

Warning: …

reactjs react-proptypes

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

通过Windows中的命令行工具合并两个png?

我正在寻找一个可以通过命令行(Windows 7)使用的工具来合并两个大小相同的png.到目前为止,我没有太多的搜索运气,因为我见过的大多数工具都是非常繁重的应用程序,似乎并不针对简单的操作.

我想用覆盖图像中的非透明像素覆盖不透明基础图像中的位.我也有photoshop CS4,但在查找相关的命令行参数方面运气不佳.

build-automation png batch-file windows-7

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

检查属性和类型的类

得到一个带有方法的类,该方法接受一个对象并循环遍历它,将对象的值分配给类.这可能在应用程序中发生了很多,我想知道是否有一个有效的,最好是语言不可知的语法来验证对象的属性名称,并在分配给类之前确认值类型?我将需要将此代码导出到至少flash和javascript,可能还有其他人稍后要关注.我需要保持方法的通用性,因为它存在于基类中.下面的内容:

public function updateProperties(propsObj:Object):void {
  for (var prop in propsObj) {
    if (/* this has prop && typeof propsObj[prop] == typeof this[prop] */) {
      this[prop] = propsObj[prop];
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对Haxe来说是新手,所以我在寻找这类方法的一系列方法时遇到了一些麻烦.反射似乎有接近我正在寻找的方法,但很多方法看起来可能是我需要的过度杀戮,希望有一些见解.

haxe

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

Javascript等于flash.utils.getTimer?

我可以使用javascript中的一些窗口变量或者使用计时器来跟踪不使用日期对象的已用时间吗?flash.utils.getTimer在这个应用程序的Flash版本中运行良好,我正在尝试将其移植到javascript.我无法冒险更改系统时钟导致安全问题,因此我不想使用Date对象.

我有一个servertimestamp,我想创建一个独立于操作系统时间的计时器来计算当前服务器时间.我将使用此计算值允许在服务器时间的Windows期间进行不同的操作.我不关心javascript黑客,因为我知道那里没有安全性,但我想防止临时用户搞乱某些功能的可用性.

谢谢

补充说明:

该项目涉及实时视频事件.实时视频具有相对于服务器的开始时间,通过另一个Web服务,我可以获取服务器时间.我需要做的是独立于用户的本地时间在客户端计算机上维护此服务器时间,以确定实时流何时应该在客户端上启动和停止.所以问题实际上并不是我存储服务器时间的格式,而是如何从不占用日期对象时获取服务器时间的时间.

javascript time

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

Express + bodyParser.json() + Postman, req.body 为空

使用以下内容时:

var app = require('express')();
var bodyParser = require('body-parser');

app.post('/test', bodyParser.json(), function(req, res) {
  res.json(req.body);
});

var port = 4040;
app.listen(port, function() {
  console.log('server up and running at port: %s', port);
});
Run Code Online (Sandbox Code Playgroud)

以及邮递员的以下帖子:

在此处输入图片说明

我得到一个空的回应。我已经关注了很多关于使用 bodyParser.json() 的线程,出于某种原因,我仍然收到一个空对象作为响应。我错过了什么?

javascript json node.js express body-parser

0
推荐指数
2
解决办法
4554
查看次数