我决定学习React并开始使用官方教程.一切都很好,直到我达到我的代码状态:
var CommentBox = React.createClass({
render: () => {
return (
<div className="commentBox">
<h1> Comments </h1>
<CommentList />
<CommentForm />
</div>
);
}
});
var CommentForm = React.createClass({
render: () => {
return (
<div className="commentForm">
Hello, world! I am a comment form;
</div>
);
}
});
var Comment = React.createClass({
rawMarkup: () => {
var rawMarkup = marked(this.props.children.toString(), {sanitize: true});
return {__html: rawMarkup};
},
render: () => {
return (
<div className="comment">
<h2 className="commentAuthor">
{this.props.author}
</h2> // <--- [[[[[[ …Run Code Online (Sandbox Code Playgroud) 基本上,我有这个非常简单的反应组件.它的作用是环绕'react-intercom',只有在状态发生变化时才会渲染它.为了简化问题,我已经将该shouldCompoenentUpdate()方法硬连接以始终返回false.
import React from 'react';
import Intercom from 'react-intercom';
class IntercomWrapper extends React.Component {
shouldComponentUpdate(nextProps, nextState) {
// console.log(!!nextProps.user && nextProps.user.userId !== this.props.user.userId);
// return !!nextProps.user && nextProps.user.userId !== this.props.user.userId;
return false;
}
render() {
console.log('rendering');
return <Intercom {...this.props} />;
}
};
export default IntercomWrapper;Run Code Online (Sandbox Code Playgroud)
会发生什么事情,它总是会重新渲染,这不应该发生.
任何人都知道为什么会发生这种情况?
我对vimscript不太满意,但我想在Vim中做一些自定义映射.我想要做的是映射<leader>h切换到上一个选项卡,但当我按下<leader>后h,它正在等待另一个键,并且不会快速切换.有没有办法看到哪些映射以"h"键开头并取消映射?或者也许是另一种更优雅的解决方案
谢谢,H.
我正在尝试使用钩子获取对传单对象的引用,因此我可以查询不同事件(如 Map.getBoundaries())上的新地图边界。我很新reac-leaflet,这种方法可能完全错误,但这是我现在所拥有的......
我想要做的是获取每个moveend事件的地图边界,如果这有帮助的话......
我有一个问题,我认为可能对很多人来说很常见,但似乎我不对.所以我希望有人可以提供帮助,因为我无法在Gulp文件中找到答案.
现在我的gulpfile.js有以下内容:
'use strict';
var gulp = require('gulp');
var jade = require('gulp-jade');
var gutil = require('gulp-util');
var stylus = require('gulp-stylus');
var jeet = require('jeet');
var nib = require('nib');
var uglify = require('gulp-uglify');
var livereload = require('gulp-livereload');
var sources = {
jade: "jade/**/*.jade",
partials: "partials/**/*.jade",
stylus: "styl/**/*.styl",
scripts: "js/**/*.js"
};
// Define destinations object
var destinations = {
html: "dist/",
css: "dist/css",
js: "dist/js"
};
// Compile and copy Jade
gulp.task("jade", function(event) {
return gulp.src(sources.jade)
.pipe(jade({pretty: true}))
.pipe(gulp.dest(destinations.html))
});
// Compile …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在 Jest 中生成测试并运行它们的方法。我正在测试一个 API,测试用例是从 CSV 文件导入的,从中生成测试。
目前我得到的是一组参数,我想从中生成测试并运行它们。这就是我看到它的工作方式:
let testFn = (testName, request, expected) => it(test.testName, (request, expected) => {
return new Promise((resolve, reject) => {
http.post(request, (err, res) => {
if (err) {
reject(err);
} else {
resolve(res);
}
})
}).then((res) => {
expect(res.result).toBe(expected['result']);
return response;
})
});
Run Code Online (Sandbox Code Playgroud)
上面的代码是我的测试功能。在我看来,应该调用它来执行测试。它根据 3 个参数生成测试:
testName 他是测试的名称,在控制台中显示request 是发送到 API 的请求expected 是预期的结果。结构总是相同的:res.result应该是参数中的任何内容expect。
我从 CSV 获得的带有测试的数组元素的示例是:
const oneTest = {
testName: 'the request should return 10',
request: {
input: …Run Code Online (Sandbox Code Playgroud) 我已经准备好与Stylus,Jade和tiny-lr合作.我的问题是,当我保存一个玉文件时,它开始编译它们全部,因此在我正在处理的文件编译之前,在第一个复制到目标的文件上重新加载火,导致我必须手动刷新.我已经使用"gulp-changed"解决了这个问题,但我似乎无法配置它或其他东西.以前有人有这个问题吗?我发布了我的Gulp文件,所以你可以看看.
可以在此处找到问题的时间线图:https://www.dropbox.com/s/3g37oy25s9mq969/jade_compile_frefresh_problem.png?dl = 0
任何帮助表示赞赏!
'use strict';
var gulp = require('gulp');
var jade = require('gulp-jade');
var gutil = require('gulp-util');
var stylus = require('gulp-stylus');
var jeet = require('jeet');
var nib = require('nib');
var uglify = require('gulp-uglify');
var lr = require('tiny-lr')();
// var mainBowerFiles = require('main-bower-files');
// Define sources object
var sources = {
jade: "jade/**/*.jade",
partials: "partials/**/*.jade",
stylus: "styl/**/*.styl",
scripts: "js/**/*.js"
};
// Define destinations object
var destinations = {
html: "dist/",
css: "dist/css",
js: "dist/js"
};
// …Run Code Online (Sandbox Code Playgroud) javascript ×5
reactjs ×3
gulp ×2
jestjs ×1
leaflet ×1
pug ×1
stylus ×1
synchronous ×1
testing ×1
vim ×1