小编alm*_*man的帖子

不变违规:对象作为React子对象无效

在我的组件的渲染功能中,我有:

render() {
    const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => {
      return (<li onClick={this.onItemClick.bind(this, item)} key={item}>{item}</li>);
    });
    return (
      <div>
        ...
                <ul>
                  {items}
                </ul>
         ...
      </div>
    );
  }
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是当点击<li>元素时,我收到以下错误:

未捕获错误:不变违规:对象无效作为React子对象(找到:具有键的对象{dispatchConfig,dispatchMarker,nativeEvent,target,currentTarget,type,eventPhase,bubbles,cancelable,timeStamp,defaultPrevented,isTrusted,view,detail,screenX ,screenY,clientX,clientY,ctrlKey,shiftKey,altKey,metaKey,getModifierState,button,buttons,relatedTarget,pageX,pageY,isDefaultPrevented,isPropagationStopped,_dispatchListeners,_dispatchIDs}).如果您要渲染子集合,请使用数组,或使用React附加组件中的createFragment(object)包装对象.检查渲染方法Welcome.

如果我改变this.onItemClick.bind(this, item)(e) => onItemClick(e, item)里面的地图功能一切正常.

如果有人能够解释我做错了什么并解释为什么我会收到这个错误,那就太好了

更新1:
onItemClick函数如下,删除this.setState导致错误消失.

onItemClick(e, item) {
    this.setState({
      lang: item,
    });
}
Run Code Online (Sandbox Code Playgroud)

但我无法删除此行,因为我需要更新此组件的状态

javascript reactjs

296
推荐指数
17
解决办法
39万
查看次数

在elixir中断言列表的大小

我想断言列表的大小.目前我这样做如下:

assert devices = Repo.all from d in device, where d.uuid == ^attrs.uuid
assert devices.first == devices.last
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

elixir

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

relayjs:使用relay进行身份验证,使用哪个变种?

我目前正在使用DefaultNetworkLayer中设置的自定义标头处理中继之外的身份验证.这是首选的方式吗?有没有办法在接力中做到这一点?我试图在继电器中实现注册功能时遇到困难:在中继中有以下配置:FIELDS_CHANGE,NODE_DELETE,RANGE_ADD,RANGE_DELETE.所以RANGE_ADD是唯一可以应用的,但是我需要一个父和连接,我没有为新创建的用户....

javascript relayjs

13
推荐指数
2
解决办法
3162
查看次数

将snake_case键控映射转换为ellir,phoenix中的camelCase键控映射,然后将内容作为JSON发送

在将内容作为JSON发送之前,我想将elixir中的地图键从snake case更改为camel case.我怎样才能做到这一点?它应该只是一个函数,我将包装每个响应,还是应该在较低级别,即在毒药中完成?

谢谢

elixir phoenix-framework

7
推荐指数
2
解决办法
3631
查看次数

在 ecto 中分配 insert_at 字段

我需要测试到期时间,为此我需要分配 insert_at 字段,但是当我这样做时

insert_registration(Map.put(attrs, :inserted_at, Ecto.DateTime.cast("2016-03-11 00:00:00")))
Run Code Online (Sandbox Code Playgroud)

inserted_at 字段总是被覆盖到当前时间

elixir ecto

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

凤凰频道:向特定客户发送推送

嗨,我正在尝试使用elixir phoenix重新实现whatsapp功能.我在解决以下问题时遇到了问题:如果聊天室中的所有人都收到了该消息,我想发送消息状态为"已收到"的所有者,以便他可以显示双勾号.但是你如何向一个特定的客户广播?

elixir phoenix-framework

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

erlang elixir 观察者 ui:进程选项卡中的 reds/reductions 是什么意思?

我正在做一个用 Agent 实现的字典模块的练习,它应该在random_word(pid)函数调用时输出随机单词。实现完成后,作者问:“使用观察者(:observer.start),找到这个进程。双击它,调出进程详细信息。现在生成一些随机词。你看​​到进程显示有什么变化吗(您可能需要等待几秒钟或刷新进程窗口才能看到更改)?”

我注意到的唯一变化是红色/减少的数量(当我从 iex 调用函数时它会增加)。然而,没有解释什么是“红人”,也没有解释为什么它会增加。

在快速网上冲浪后,我找不到任何初学者可以理解的东西(生产文章弹出窗口中有很多长生不老药/erlang)。你们能不能给一个很好的,简单的答案。

在此处输入图片说明

erlang elixir

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

带有图标的材料设计精简版(MDL)按钮

在MDL中有两个选项:Normal Button:

    <button className="mdl-button mdl-js-button">
      Continue with Facebook
    </button>
Run Code Online (Sandbox Code Playgroud)

和图标按钮:

    <button className="mdl-button mdl-js-button mdl-button--icon">
      <i className="material-icons">mood</i>
    </button>
Run Code Online (Sandbox Code Playgroud)

怎么可能在左边有一个带有图标的按钮,例如

    <button className="mdl-button mdl-js-button mdl-button--raised mdl-button--icon-left">
      <i className="material-icons">mood</i> Continue with Facebook
    </button>
Run Code Online (Sandbox Code Playgroud)

css material-design material-design-lite

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

Neo4J Cypher:仅当属性为 null 时才设置属性,但仍返回节点

我对 Neo4J 很陌生,并且正在努力解决以下问题:

我只想在属性尚不存在时设置属性(如果它为空),并且不想设置属性(如果存在)。我如何修改下面的查询来实现这一点

  MATCH (u:User)
  WHERE u.uuid=$userId
  SET u.unsubscribedAt = timestamp()
  RETURN u
Run Code Online (Sandbox Code Playgroud)

提前致谢

更新1:我忘记提到的一件事:无论如何我仍然想返回节点,所以不能添加AND u.unsubscribedAt is nullwhere子句

neo4j cypher

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