title: React.js key generation
body: <p>I've a problem with the Reconciliation algorithm using a set of key (without duplicates). The snippet of code is similar to the examples:
  `</p>
  
  <pre><code>var ResourceTable = React.createClass({
      getInitialState: function() {
          return {data: [{"rid": "Ciao ", "id": 10}, {"rid": "Mondo!", "id": 2}]};
      },
      componentDidMount: function() {
          self = this;
          self.setState({data: [{"rid":"first", "id": 3},{"rid":"second", "id": 1},{"rid":"third", "id": 2}]});
      },
      render: function() {
          var commentNodes = this.state.data.map(function (resource, index) {
              return (
                  &lt;Resource key={resource.id} rid={resource.rid}/&gt;
              );
          });
  
          return(
              &lt;table&gt;
                  {commentNodes}
              &lt;/table&gt;
          );
      }
  });
  </code></pre>
  
  <p>`
  The first time that the object is rendered everything works fine (for every value of the resource.id). The second time I've an unattended behavior: sometimes every element is correctly rendered and sometimes not, I made a lot of attempts, but I cannot find an explanation.
  The case that cause the error is:</p>
  
  <ul>
  <li>First rendering keys: [10,2]</li>
  <li>Second rendering keys: [3,1,2]</li>
  </ul>
  
  <p>The result is that only two element are rendered during the second rendering.</p>