小编mac*_*ost的帖子

React PropTypes vs. Flow

PropTypes和Flow涵盖类似的东西,但使用不同的方法.PropTypes可以在运行时为您提供警告,这有助于快速查找来自服务器等的错误响应.但是,Flow似乎是未来,并且像泛型这样的概念是一个非常灵活的解决方案.此外,Nuclide提供的自动完成功能对Flow来说是一个很大的优势.

我现在的问题是,在开始一个新项目时,哪种方式最好.或者它是一个很好的解决方案同时使用Flow和PropTypes?使用两者的问题是你写了很多重复的代码.这是我写的音乐播放器应用程序的示例:

export const PlaylistPropType = PropTypes.shape({
    next: ItemPropTypes,
    current: ItemPropTypes,
    history: PropTypes.arrayOf(ItemPropTypes).isRequired
});

export type Playlist = {
    next: Item,
    current: Item,
    history: Array<Item>
};
Run Code Online (Sandbox Code Playgroud)

这两个定义基本上都包含相同的信息,当数据类型发生变化时,两个定义都需要更新.

我发现这个babel插件将类型声明转换为PropTypes,这可能是一个解决方案.

reactjs flowtype react-proptypes

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

如何从ack(ack-grep)中排除特定文件?

使用普通grep命令有一个--exclude选项(这里详细介绍:使用grep --exclude/ - include语法来不通过某些文件),可以让你在grepping时忽略特定的文件.

Ack的--type选项可以处理95%你想要排除文件的情况,但它没有(据我所知)处理排除特定文件的情况.我有一个已编译的JS文件,其中包含其他每个JS文件的内容(在一行上),所以每当我grep 任何东西时,我都会找回那个巨大的编译文件的全部内容.

我不想放弃ack并回过头来讨论这个问题,但这真的很烦人.请有人告诉我,有一种方法可以从ack搜索中排除特定文件.

ack

47
推荐指数
3
解决办法
2万
查看次数

反应:为什么静态propTypes

我正在寻找redux todomvc代码.什么是static在关键字static propTypes?谢谢

UPDATE

不知道为什么会投票?这篇文章太简单了吗?欢迎评论.谢谢.我希望我能删除这篇文章.

reactjs redux react-proptypes

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

Python有像Capybara/Cucumber一样的东西吗?

Ruby在Selenium之上有一个很棒的抽象层,称为Capybara,您可以使用它进行功能/接受/集成测试.它还有另一个名为Cucumber的库,它更进了一步,让你真正用英语编写测试.

这两个库都是在Selenium之上构建的,可以用来测试任何主要的浏览器,但由于它们的抽象层,使用它们编写测试非常容易(好吧,就像功能测试一样简单).

我的问题是:Python有类似的东西吗?我发现Pythonistas使用各种工具进行功能测试但是......

A)Splinter:不使用Selenium(并且没有IE驱动程序)

-EDIT- 看来Spliter现在确实使用了Selenium(见下面的答案).

B)Alfajor:一年多来没有更新; 看起来死了

C)Selenium(原始):很多人似乎直接使用Selenium,但它似乎是一个抽象层可以使它更容易使用

那么,对于Python来说,有没有人知道类似Capybara的东西,或者更好的类似Cucumber的东西(它不必实际使用Selenium,但它需要支持所有主流浏览器)?

*编辑*

对于那些不熟悉Capybara的人来说,它基本上只是添加了一个API,因此您可以执行以下操作来代替正常的Selenium API:

When /I sign in/ do
  within("#session") do
    fill_in 'Login', :with => 'user@example.com'
    fill_in 'Password', :with => 'password'
  end
  click_link 'Sign in'
end
Run Code Online (Sandbox Code Playgroud)

它被Cucumber使用,让你进一步抽象(几乎到英文):

Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
Then the result should be <output> on the screen

Examples:
| input_1 | input_2 | button | output | …
Run Code Online (Sandbox Code Playgroud)

python acceptance-testing functional-testing

42
推荐指数
6
解决办法
3万
查看次数

如何在Django REST Framework中禁用身份验证

我正在一个商店网站上工作,每个用户都将是匿名的(好吧,至少需要付费),我正在尝试使用Django REST Framework来提供产品API,但它一直在抱怨:

"detail": "Authentication credentials were not provided."
Run Code Online (Sandbox Code Playgroud)

我发现了一些与身份验证相关的设置,但我找不到类似的东西ENABLE_AUTHENTICATION = True.如何简单地禁用身份验证,并让站点的任何访问者访问API?

authentication django-rest-framework

42
推荐指数
6
解决办法
3万
查看次数

我如何JSDoc嵌套对象的方法?

我一直在尝试使用JSDoc3来生成文件的文档,但是我遇到了一些困难.该文件(Require.js模块)基本上如下所示:

define([], function() {

    /*
     * @exports mystuff/foo
     */
    var foo = {
        /**
         * @member
         */
        bar: {
            /**
             * @method
             */
            baz: function() { /*...*/ }
        }
    };

    return foo;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我无法baz在生成的文档中显示出来.相反,我只获得一个foo/foo模块的文档文件,该文件列出了一个bar成员,但bar没有baz(只是一个foo源代码的链接).

我已经尝试改变bar指令了@property,我已经尝试将baz指令更改为@member@property,但这些都没有帮助.无论我做什么,巴兹似乎都不想表现出来.

有谁知道我可以用什么指令结构让baz出现在生成的文档中?

PS我试过在JSDoc网站http://usejsdoc.org/howto-commonjs-modules.html上阅读这样的页面,但它只描述了案例foo.bar,而不是foo.bar.baz.

javascript jsdoc requirejs jsdoc3

41
推荐指数
2
解决办法
3万
查看次数

有什么替代jsPlumb?(用于连接DOM元素)

我正在制作一个甘特项目管理系统,我正在尝试将UI的DOM元素连接在一起,就像在这个jsPlumb演示中一样:

在此输入图像描述

但是,我不太喜欢jsPlumb.我搜索了替代品,但找不到任何替代品.

您建议使用任何jsPlumb替代品吗?

html javascript svg canvas jsplumb

36
推荐指数
3
解决办法
3万
查看次数

长JSDoc线的正确/规范格式是什么?

所有官方JSDoc示例都有简单的文档字符串,如下所示:

/**
 * @param {string} author - The author of the book.
 */
Run Code Online (Sandbox Code Playgroud)

问题是,在现实文档中,您通常需要更长的文档字符串:

/**
 * @param {string} author - The author of the book, presumably some person who writes well
 */
Run Code Online (Sandbox Code Playgroud)

但由于大多数公司(出于合法的可读性原因)都有线路长度限制,因此上述情况往往是不可接受的.然而,我无法弄清楚的是分解这些线的"正确"方式应该是什么.

我可以:

/**
 * @param {string} author - The author of the book, presumably some
 * person who writes well
 */
Run Code Online (Sandbox Code Playgroud)

但这很难理解.我可以这样做:

/**
 * @param {string} author - The author of the book, presumably some
 *                          person who writes well
 */
Run Code Online (Sandbox Code Playgroud)

这看起来更好,但它可能导致大量的行,特别是如果参数具有长名称:

/**
 * @param {string} personWhoIsTheAuthorOfTheBook - …
Run Code Online (Sandbox Code Playgroud)

jsdoc

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

如何通过Jest测试React PropTypes?

我正在为我的React代码编写Jest测试,并希望使用/测试PropType检查.我对Javascript世界很陌生.我正在使用npm进行安装react-0.11.2并有一个简单的:

var React = require('react/addons');
Run Code Online (Sandbox Code Playgroud)

在我的测试中.我的测试看起来非常类似于jest/react教程示例,其代码如下:

var eventCell = TestUtils.renderIntoDocument(
  <EventCell
    slot={slot}
    weekId={weekId}
    day={day}
    eventTypes={eventTypes}
    />
);

var time = TestUtils.findRenderedDOMComponentWithClass(eventCell, 'time');
expect(time.getDOMNode().textContent).toEqual('19:00 ');
Run Code Online (Sandbox Code Playgroud)

但是,似乎EventCell没有触发组件中的PropType检查.我知道检查只在开发模式下运行,但后来我也认为react通过npm给你开发版本.当我使用watchify构建组件时,检查会在浏览器中触发.

我错过了什么?

reactjs jestjs reactjs-testutils react-proptypes

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

有没有办法在`git rebase -i`(交互式)中列出提交的作者?

当我git rebase -i在与同事共享的分支上执行操作时,我经常想要自己修改自己的提交.但是,因为交互式rebase工具不会将作者信息添加到rebasing文件(所有t给出的是提交哈希和描述),所以我最终必须检查另一个选项卡中的提交以查看它们是否是我的.

有没有办法给git rebase -i一个--format旗帜(或类似的东西),让它包括作者?

git git-rebase

29
推荐指数
3
解决办法
2638
查看次数