相关疑难解决方法(0)

了解React.js中数组子项的唯一键

我正在构建一个React组件,它接受JSON数据源并创建一个可排序的表.
每个动态数据行都有一个分配给它的唯一键,但我仍然收到以下错误:

数组中的每个子节点都应该具有唯一的"键"支柱.
检查TableComponent的render方法.

我的TableComponentrender方法返回:

<table>
  <thead key="thead">
    <TableHeader columns={columnNames}/>
  </thead>
  <tbody key="tbody">
    { rows }
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

TableHeader组件是单行,并且还具有分配给它的唯一键.

每个rowin rows都是使用具有唯一键的组件构建的:

<TableRowItem key={item.id} data={item} columns={columnNames}/>
Run Code Online (Sandbox Code Playgroud)

TableRowItem看起来像这样:

var TableRowItem = React.createClass({
  render: function() {

    var td = function() {
        return this.props.columns.map(function(c) {
          return <td key={this.props.data[c]}>{this.props.data[c]}</td>;
        }, this);
      }.bind(this);

    return (
      <tr>{ td(this.props.item) }</tr>
    )
  }
});
Run Code Online (Sandbox Code Playgroud)

是什么导致了唯一的关键道具错误?

javascript reactjs

549
推荐指数
9
解决办法
48万
查看次数

删除项会导致React删除最后一个DOM节点,而不是与该项关联的节点

我试图使用ReactCSSTransitionGroup为列表插入和删除设置动画,但删除动画始终仅动画列表的最后一项而不是正在删除的项.

这是一个jsbin来说明这个问题.尝试按"添加"按钮以验证插入动画确实按预期工作,然后单击任何项​​目旁边的"x"以查看列表的最后一项是动画而不是您尝试删除的问题.

在设置TransitionGroup时我做错了什么,或者我在CSS转换定义中遗漏了什么?

css3 css-animations reactjs react-jsx

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

React.js中组件键的重要性

我只是在阅读https://coderwall.com/p/jdybeq/the-importance-of-component-keys-in-react-js上的文章时感到疑惑.

它有一个简单的小提琴代码,它说 - 如果你没有唯一的常量键,你可能最终会进入

  1. 当键不是常量时,重新创建组件的DOM节点
  2. 当密钥不唯一时,重用DOM节点渲染另一个组件

在下面的套装中相当令人困惑 -

  1. 为什么我给key = index(即使它的唯一和常量为什么反应表现得很奇怪?)
  2. 当密钥是唯一但不是常量时,究竟会发生什么?它是否检查DOM中是否存在密钥(如果不是仅删除它).

javascript reactjs

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

标签 统计

reactjs ×3

javascript ×2

css-animations ×1

css3 ×1

react-jsx ×1