小编Pic*_*els的帖子

this.setState没有像我期望的那样合并状态

我有以下状态:

this.setState({ selected: { id: 1, name: 'Foobar' } });  
Run Code Online (Sandbox Code Playgroud)

然后我更新状态:

this.setState({ selected: { name: 'Barfoo' }});
Run Code Online (Sandbox Code Playgroud)

由于setState被假定为合并,我希望它是:

{ selected: { id: 1, name: 'Barfoo' } }; 
Run Code Online (Sandbox Code Playgroud)

但相反它吃了id,状态是:

{ selected: { name: 'Barfoo' } }; 
Run Code Online (Sandbox Code Playgroud)

这是预期的行为,是什么解决方案只更新嵌套状态对象的一个​​属性?

javascript reactjs

154
推荐指数
5
解决办法
7万
查看次数

删除.vagrant文​​件后如何销毁VM?

我删除了包含.vagrant文​​件的目录.当我启动一个新VM时,它抱怨正在使用的端口.那么如何在不使用.vagrant文​​件的情况下销毁虚拟机呢?

virtual-machine vagrant

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

测试用户是否已成功登录

如何在提交注册表单后测试用户是否已登录?

我尝试了以下操作但是True在我将登录逻辑添加到注册视图之前它就会返回.

def test_that_user_gets_logged_in(self):
    response = self.client.post(reverse('auth-registration'), 
                                { 'username':'foo', 
                                  'password1':'bar', 
                                  'password2':'bar' } )

    user = User.objects.get(username='foo')
    assert user.is_authenticated()
Run Code Online (Sandbox Code Playgroud)

正在测试的代码:

class RegistrationView(CreateView):
    template_name = 'auth/registration.html'
    form_class = UserCreationForm
    success_url = '/'

    def auth_login(self, request, username, password):
        '''
        Authenticate always needs to be called before login because it
        adds which backend did the authentication which is required by login.
        '''

        user = authenticate(username=username, password=password)
        login(request, user)

    def form_valid(self, form):
        '''
        Overwrite form_valid to login.
        '''

        #save the user
        response = …
Run Code Online (Sandbox Code Playgroud)

django

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

Python:替换为正则表达式

我需要替换部分字符串.我正在浏览Python文档并找到了re.sub.

import re
s = '<textarea id="Foo"></textarea>'
output = re.sub(r'<textarea.*>(.*)</textarea>', 'Bar', s)
print output

>>>'Bar'
Run Code Online (Sandbox Code Playgroud)

我期待这打印'<textarea id="Foo">Bar</textarea>'而不是'酒吧'.

谁能告诉我我做错了什么?

python regex

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

点击此处所有活动

想知道我将如何实现"点击无处不在但在此元素上"活动.

我有一些东西可以与文件浏览器中的文件列表进行比较.您可以选择某些元素,但如果您在元素控制器外部单击,则需要取消选择所有元素.

在此输入图像描述

添加了屏幕截图以使其更加清晰.所以我想要做的是,如果我点击任何地方,但语言元素,它应该触发一个事件.

更新

澄清我不是问我如何用jQuery做到这一点.

javascript angularjs

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

防止图像加载

是否有一种方法与javascript/jquery防止图像加载?我正在从带有图像的html列表中构建幻灯片.所以我想收集所有src数据,然后阻止图像加载.因此,当用户真正需要图像时,我会加载它.

我在谷歌上发现了一些延迟加载脚本,但无法找到阻止图像加载的方式.

提前致谢.

编辑1:
从答案中可以看出,无法使用javascript来阻止图像加载. 是一个延迟加载的脚本.谁有人解释它是如何工作的?似乎当javascript关闭时它只是正常加载图像,当它在它上面时会在你滚动到它们的位置时加载它们.

javascript

33
推荐指数
4
解决办法
5万
查看次数

Visual Studio - 预编译 - 无点

我想知道是否有办法用visual studio 预编译*.less文件(http://www.dotlesscss.org/).

该网站给了我一个,dotless.compiler.exe但我不知道如何把它连接到视觉工作室.我正在寻找Webforms和ASP.NET MVC的解决方案.

asp.net-mvc less visual-studio-2008 dotless

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

Gvim:Ubuntu字母间距(Consolas字体)

我以为我可以将我的vimrc从我的Windows复制到我的Linux盒子,但是遇到了Ubuntu上字母间距的一些问题.

Vim预览

希望这是与所有这些新的stackexachange网站提出这个问题的正确位置.

更新:

我认为字体已正确安装.从菜单我可以选择它,它工作正常.

Ubuntu字体目录

vim

20
推荐指数
2
解决办法
8723
查看次数

Python:模拟对象属性的side_effect

是否可以对属性进行side_effect?如果我查看Mock文档,它似乎只能在对象方法上使用.

我正在尝试测试以下内容:

def get_object(self): 
    try:
        return self.request.user.shop
    except Shop.DoesNotExist:
        return None
Run Code Online (Sandbox Code Playgroud)

我希望Shop提出一个DoesNotExist异常.

猜猜也许我不够清楚,但我在谈论空洞模拟库.

http://www.voidspace.org.uk/python/mock/index.html

python

17
推荐指数
2
解决办法
9623
查看次数

使用REST API将端口绑定到主机接口

命令行界面的文档说明如下:

要将容器的端口绑定到主机系统的特定接口,请使用docker run命令的-p参数:

一般语法

docker run -p [([<host_interface>:[host_port]])|(<host_port>):]<container_port>[/udp] <image>

如果未提供主机接口,则端口将绑定到主机的所有可用接口(也称为INADDR_ANY或0.0.0.0).如果未提供主机端口,则会动态分配一个端口.TCP端口的可能选项组合如下

所以我想知道我是如何使用REST API做同样的事情的?

随着POST /container/create我尝试:

  • "PortSpecs": ["5432:5432"] 这似乎暴露了端口,但没有将其绑定到主机接口.
  • "PortSpecs": ["5432"] 给我与前一个相同的结果.
  • "PortSpecs": ["0.0.0.0:5432:5432"]这会返回Invalid hostPort: 0.0.0.0有意义的错误.

当我做sudo docker ps容器显示5432/tcp应该是什么时0.0.0.0:5432/tcp.

检查容器给我以下内容:

"NetworkSettings": {
    "IPAddress": "172.17.0.25",
    "IPPrefixLen": 16,
    "Gateway": "172.17.42.1",
    "Bridge": "docker0",
    "PortMapping": null,
    "Ports": {
        "5432/tcp": null
    }
}
Run Code Online (Sandbox Code Playgroud)

可以在这里找到全面检查.

docker

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