小编ast*_*ije的帖子

如何使用React Apollo 2.1的Mutation组件在mount上运行变异?

我们目前正在从Relay转向React Apollo 2.1,而我正在做的事似乎很可疑.

上下文:只有在用户通过身份验证(通过API密钥)时才能呈现某些组件,因此有一个Authenticator组件可以保护树的其余部分.

App.js,它被这样使用(显然下面的所有片段都是最小的例子):

import React from 'react';
import Authenticator from './Authenticator';
import MyComponent from './MyComponent';

export default function App({ apiKey }) {
  return (
    <Authenticator apiKey={apiKey}
      render={({ error, token }) => {
        if (error) return <div>{error.message}</div>;
        if (token) return <MyComponent token={token} />;
        return <div>Authenticating...</div>;
      }}
    />
  );
}
Run Code Online (Sandbox Code Playgroud)

如果身份验证成功,MyComponent则会进行呈现. Authentication在第一次渲染/挂载时将身份验证突变发送到服务器,并相应地调用渲染道具. Authentication.js看起来像这样:

import gql from 'graphql-tag';
import React from 'react';
import { Mutation } …
Run Code Online (Sandbox Code Playgroud)

javascript apollo reactjs react-apollo apollo-client

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

Django自定义模型字段:to_python()未调用

我对Python和Django很陌生,而且在Stack Overflow上是全新的,所以我希望我不会破坏任何规则,我尊重问题格式.

我正在尝试使用Django(Python 3.3.0,Django 1.5a1)实现自定义模型字段时遇到问题,我没有找到任何类似的主题,我实际上完全坚持这个...

所以有一个玩家,他有一手牌(卡).Hand继承自CardContainer,它基本上是带有一些(隐藏在这里)辅助函数的卡列表.这是相应的代码:

from django.db import models


class Card:
    def __init__(self, id):
        self.id = id


class CardContainer:
    def __init__(self, cards=None):
        if cards is None:
            cards = []
        self.cards = cards


class Hand(CardContainer):
    def __init__(self, cards=None):
        super(Hand, self).__init__(cards)


class CardContainerField(models.CommaSeparatedIntegerField):
    __metaclass__ = models.SubfieldBase

    def __init__(self, cls, *args, **kwargs):
        if not issubclass(cls, CardContainer):
            raise TypeError('{} is not a subclass of CardContainer'.format(cls))

        self.cls = cls
        kwargs['max_length'] = 10
        super(CardContainerField, self).__init__(*args, **kwargs)

    def to_python(self, value):
        if not value:
            return self.cls()

        if …
Run Code Online (Sandbox Code Playgroud)

python django

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

当使用Karma运行时,使用Immutable.js的Mocha测试失败

这是一些背景.我正在使用用ES6编写的React和Immutable.js开发一个项目.我使用Babel和webpack.

我使用Mocha,Chai和jsdom编写了一些单元测试,因此可以在浏览器外执行.

问题是某些组件正在使用诸如需要图像之类的东西.这个东西由webpack通过特定的加载器处理.

因此,当在终端中运行测试时,由于这些未满足的要求,它们会失败.

我发现如何通过使用Karma解决这个问题(留下在浏览器之外运行测试的能力)并在运行测试之前编译源代码并使其成为webpack配置只是忽略图像加载器(使用null-loader).

那时,测试是通过Karma运行的,但是其中一些是失败的,而当它们通过终端运行时它们正在通过(我评论了那些有需求的行,只是为了测试的目的).

失败的测试都与Immutable.js有关,这意味着我正在尝试测试两个Immutable对象的相等性.

这是一个测试的例子:

it('handles SET_STATE', () => {
    const initialState = Map();
    const action = {
        type : 'SET_STATE',
        state : Map({
            vote : Map({
                pair : List.of('Trainspotting', '28 Days Later'),
                tally : Map({ 'Trainspotting' : 1 })
            })
        })
    };

    const nextState = reducer(initialState, action);

    expect(nextState).to.equal(fromJS({
        vote: {
            pair: ['Trainspotting', '28 Days Later'],
            tally: { 'Trainspotting': 1 }
        }
    }));
});
Run Code Online (Sandbox Code Playgroud)

失败就是这样的:

1) handles SET_STATE
     reducer
     AssertionError: expected { Object (size, _root, ...) } …
Run Code Online (Sandbox Code Playgroud)

mocha.js karma-mocha webpack immutable.js chai-immutable

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

误解了array_udiff的行为

我很难理解它是如何array_udiff运作的.

根据文件:

array_udiff ($array1, $array2, data_compare_func)
Run Code Online (Sandbox Code Playgroud)

[...] data_compare_func如果第一个参数被认为是比上述第二分别小于,等于或大于函数必须返回一个整数比小于零,等于,或更大.

所以考虑这个功能:

function please_compare($a, $b) {
  return $a !== $b;
};
Run Code Online (Sandbox Code Playgroud)

如果$ a等于$ B,该方法将返回0,否则为1(因为这个).

(这里没有-1返回,我觉得解释来自那里,但我可以比较价值不同,而不是一个比另一个更大.)

有人可以array_udiff在下面的片段中解释我的行为吗?我还包括了输出array_diff,这实际上是我期待的行为?

$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'b', 'c');

print_r(array_udiff($array1, $array2, 'please_compare'));
/* Returns:
     Array
     (
       [0] => a
       [1] => b
       [3] => d
     )
*/

print_r(array_diff($array1, $array2));
/* Returns:
     Array
     (
       [3] => d
     )
*/
Run Code Online (Sandbox Code Playgroud)

php arrays comparison

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

无法比较Immutable-js对象

我试图了解为什么我的简单柴(使用柴不可变)测试失败。

it('should work', () => {
   var currentState = Immutable.fromJS({
     name: 'myName',
     age: 20,
     friends: []
   });

   var newState = currentState.merge({
     name: 'someOtherName',
     age: 30
   });

   expect(newState).to.equal(Immutable.fromJS({
     name: 'someOtherName',
     age: 30,
     friends: []
   }));
});
Run Code Online (Sandbox Code Playgroud)
  • 如果我使用mergeDeep而不是merge-它仍然无法正常工作
  • 如果我比较期望值和实际值的.toJS()推算值(使用lodash isEqual),则可以...

我究竟做错了什么?我想我缺少了一些愚蠢的东西...

谢谢,阿米特。

javascript chai immutable.js chai-immutable

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

对非PEP8兼容代码(E211)会产生不良后果吗?

假设有一个函数定义为:

def thingy(arg1):
    pass
Run Code Online (Sandbox Code Playgroud)

根据书籍和PEP8(错误代码E211),我知道调用它的正确方法是:

thingy(true)
Run Code Online (Sandbox Code Playgroud)

但是,我在现有代码中也看到了以下形式:

thingy (true)
Run Code Online (Sandbox Code Playgroud)

除了反对PEP8,它是否有害?

特别是,它是否可以使用推荐的方式创建一个不会被抛出的不需要的bug /副作用?

python pep8

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

ImmutableJS fromJS()和Map()"ownerID"不匹配

我正在使用chai-immutablenpm模块进行测试.这是测试:

it("runs the test", () => {
    const initialState = Map();
    const entries = ["entry"];
    const nextState = setEntries(initialState, entries);

    expect(nextState).to.equal(fromJS({
        entries : ["entry"]
    }));
});
Run Code Online (Sandbox Code Playgroud)

这是setEntries功能

export function setEntries(state, entries) {
    return state.set("entries", List(entries));
}
Run Code Online (Sandbox Code Playgroud)

npm test失败: 在此输入图像描述

这是什么ownerID?如何解决这个问题?

编辑:

我已经从头开始创建并重写了整个文件,但它确实有效.它与上一个文件完全相同.

仍然感兴趣为什么它发生....

javascript node.js chai immutable.js chai-immutable

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

print_r返回BLANK PAGE

我有一个奇怪的问题,我print_r($obj)在Joomla YOOtheme ZOO扩展中使用它返回一个空白页面.它只是充当die()!

它应该输出对象,但它不会.

请注意,print_r()它与其他一些对象和变量一起正常工作.

我在Windows上使用XAMPP.

有帮助吗?

在执行print_r()var_dump(),该网页是空白的,没有错误,查看源代码所示:

<html>
  <head></head>
  <body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

错误报告已打开.

php xampp joomla

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

删除django中浮点数的小数部分?

我有一个变量{{value.item_total }}在这个值执行499.00...但我想删除我的模板文件中的这个值..我怎么能这样做...有人建议我请..

python django templates

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