我有一个名为React的组件<SensorList />,它有许多子代<SensorItem />(另一个React组件).我希望能够从内部声明onClick每个事件.我尝试过以下操作:<SensorItem /><SensorList />
sensorSelected: function(sensor) {
console.log('Clicked!');
},
render: function() {
var nodes = this.state.sensors.map(function(sensor) {
return (
<SensorItem onClick={ this.sensorSelected } />
);
}.bind(this));
return (
<div className="sensor-list">
{ nodes }
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
毋庸置疑,我没有得到任何"点击!" 进入我的控制台.Chrome中的React检查器指示onClick已注册事件,并具有上述功能主体.
因此,我得出结论,我无法onClick在实际<SensorItem />标签上注册事件(但我不知道为什么会这样).我怎么去实现这个呢?
我有一个在Docker容器中运行的应用程序.它需要公司私有NPM注册机构(Sinopia)的一些私有模块,访问这些模块需要用户身份验证.Dockerfile是FROM iojs:latest.
我试过了:
1)创造在项目的根的.npmrc文件,这其实没有什么区别和NPM似乎使用ENV变量忽略它2) NPM_CONFIG_REGISTRY,NPM_CONFIG_USER等等,但用户不登录.
从本质上讲,我似乎无法在docker build流程中对用户进行身份验证.我希望有人可能已经遇到这个问题(似乎是一个明显的问题)并且有一个很好的解决方法.
(最重要的是,我在Docker Hub上使用自动构建(在推送时触发),以便我们的服务器可以使用预构建的图像访问私有Docker注册表.)
有没有好的方法:1)在构建时注入NPM的凭据(所以我不必将凭据提交到我的Dockerfile)或2)以另一种方式执行此操作,我没有想到?
我有一个设置道具的测试,以观察组件中的一些变化.唯一的复杂因素是我将渲染的元素包装在a中,<Provider>因为树中有一些连接的组件.
我正在渲染
const el = () => <MyComponent prop1={ prop1 } />;
const wrapper = mount(<Provider store={store}>{ el() }</Provider>);
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下内容观察一些更改:
wrapper.setProps({ /* new props */ });
// expect()s etc.
Run Code Online (Sandbox Code Playgroud)
问题是setProps()没有在包装组件上正确设置道具.我认为这是因为<Provider>它实际上并没有通过道具,因为它不是HoC.有没有更好的方法来测试这个,而不仅仅是更改本地范围的道具变量和重新渲染?
我已经继承了一个脚本作为应用程序构建过程的一部分,当我在构建服务器(Ubuntu Precise)上运行时,它运行正常,但是当我在我的mac上运行它时,我得到"非法选项 - t".有问题的命令很简单,只需调用find:
find -type f -not -path [...]
Run Code Online (Sandbox Code Playgroud)
在测试中,我发现它是-type我的Mac上有问题的选项.如果我改为:
find ./ -type f -not -path [...]
Run Code Online (Sandbox Code Playgroud)
它可以工作,但在Linux机器上都可以工作(看似相同).因此,我的问题是,OSX(BSD)find二进制文件和Linux(GNU?)之间是否存在显着差异,find我对脚本的修改(./在开始时添加路径)是否会破坏我尚未发现的任何内容?
我正在为我大学的身份验证系统 (Ucam_Webauth) 使用图书馆,这意味着我必须使用其中一种方法重定向到身份验证服务器。不幸的是,Redirect:to()由于该库的架构,我无法返回 a 。库本身使用,header('Location: ...');但由于某种原因这不起作用。
如果我die();在发送标头后制作程序,它就可以工作,否则就不行。
知道我该如何解决这个问题吗?
我一直在使用骨干关系(https://github.com/PaulUithol/Backbone-relational)来构建我的应用程序,因为我有一个模型(Room),附带了许多其他模型:
正如您在本期中所看到的,我一直收到错误
Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type
每当我更改View或重新加载Collection时.
现在我知道有一个线程在这里他们建议使用在那里findOrCreate,但我没有单独访问模型,但我不使用Collection.fetch.有没有解决这个问题的方法?
我正在使用kafka-node在我的应用程序中的服务之间发送消息.我正在使用wurstmeister/kafka和wurstmeister/zookeeper容器来运行Kafka和Zookeeper(为了简单起见).
每次我尝试向send()经纪人发送消息时,都会收到LeaderNotAvailable错误消息.我使用kafka-web-console来检查代理,它显示了我设置的两个主题,但它没有显示任何领导者(请参阅http://cl.ly/image/1f3g0K2S1J0F).
既没有阅读容器日志(下面),也没有任何文档,也没有尝试搜索这个问题,我可以找出它为什么不工作(或如何解决它).
如果我销毁容器并再次启动它们(而不是仅仅重新启动它们docker-compose up),则更新发送似乎有效.
zookeeper_1 | JMX enabled by default
zookeeper_1 | Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
zookeeper_1 | 2015-09-01 10:44:15,108 [myid:] - INFO [main:QuorumPeerConfig@103] - Reading configuration from: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
zookeeper_1 | 2015-09-01 10:44:15,113 [myid:] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
zookeeper_1 | 2015-09-01 10:44:15,113 [myid:] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 1
zookeeper_1 | 2015-09-01 10:44:15,119 [myid:] - WARN …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个网络服务器,它接受一些 JSON 参数,并将它们转换为一个结构,然后将其存储在我的应用程序中的其他位置。
我在名为 status.rs 的文件中有这个数据结构:
use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Status {
pub id: String,
pub rssi: Option<i8>,
pub carrier: Option<String>,
pub timestamp: u64,
}
Run Code Online (Sandbox Code Playgroud)
然后,我在 Hyper 的服务中使用以下代码来尝试解析请求的正文并将其转换为我的结构。唯一的区别是我想根据服务器上的时间戳添加时间戳字段,而不是客户端上的:
let timestamp: u64 = SystemTime::now()
.duration_since(UNIX_EPOCH)
.expect("PANIC! Time is running backwards!")
.as_secs();
Box::new(req.into_body().concat2().map(|body| {
let body_bytes = body.into_bytes();
let body_str = match str::from_utf8(&body_bytes) {
Ok(v) => v,
Err(e) => {
// TODO: this is shitty error handling
panic!("Unable to read UTF8 input: {}", e);
}
};
let …Run Code Online (Sandbox Code Playgroud) 我需要将视频文件从我的应用程序上传到服务器.我试过这样做,[AFHTTPRequestOperationManager post:parameters:success:failure]但遗憾的是不断收到请求超时.现在我想类似的东西创建上传任务,从自动对焦文档.
我阅读等和AF文档有关setSessionDidReceiveAuthenticationChallengeBlock:,并试图实现整个上传说大话如下:
__block ApiManager *myself = self;
// Construct the URL
NSString *strUrl = [NSString stringWithFormat:@"%@/%@", defaultUrl, [self getPathForEndpoint:endpoint]];
NSURL *URL = [NSURL URLWithString:strUrl];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[request setHTTPMethod:@"POST"];
// Build a session manager
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
// Set authentication handler
[manager setSessionDidReceiveAuthenticationChallengeBlock:^NSURLSessionAuthChallengeDisposition(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential *__autoreleasing *credential) {
*credential = myself.credentials;
return NSURLSessionAuthChallengeUseCredential;
}];
// …Run Code Online (Sandbox Code Playgroud) 我正在使用IO.js 1.4.3和Jest来运行我的测试套件.我需要更新版本的V8,因为我正在使用像Promises这样的ES6功能.
如果我尝试最简单的测试:
describe('the truth', function() {
it('is true', function() {
expect(true).toBeTruthy();
});
});
Run Code Online (Sandbox Code Playgroud)
它很有效(谢天谢地).但是,如果我包含一个调用require()(我必须要测试自己的代码),我得到:
Using Jest CLI v0.4.0
Waiting on 1 test...Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
无论我包含哪个模块,以及是否先拨打电话,都会发生这种情况jest.dontMock().
这并没有真正告诉我很多错误消息,而且require确实似乎确实是问题所在.除了恢复到1.0之前的node.js之外,还有其他解决方案吗?