**Do you want to request a _feature_ or report a _bug_?**

Bug

**What is the current behavior?**

When there are two lists of radio buttons and they are conditionally shown the correct radio button isn't always checked. In the [provided JSFiddle](https://jsfiddle.net/atimmer/krphcc8e/3/) I have created two lists and put a button before them to toggle between the two lists. You can see when switching to the second list of radio buttons none of the radio buttons is checked even though the second one should be checked based on the state.

**What is the expected behavior?**

The correct radio button should be checked. The following JSFiddle shows the behaviour with React 15.3.0 where it still worked: https://jsfiddle.net/atimmer/Lzjs56sn/1/.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

✅ React 15.3.0: It works.
❌ React 15.3.1: It is broken.

state = {type: 'number', value: 1000};
      render() {
        var {value, type} = this.state;
        return <input onChange={() => {}} type={type} value={value} />;
      }
    }
    var input = ReactTestUtils.renderIntoDocument(<Input />);
    var node = ReactDOM.findDOMNode(input);
    
    
    input.setState({type: 'text', value: 'Test'});
    expect(node.value).toEqual('Test');
  });
  it('resets value of date/time input to fix bugs in iOS Safari', () => {
    function strify(x) {
      return JSON.stringify(x, null, 2);
    }
    var log = [];
    var originalCreateElement = document.createElement;
    spyOn(document, 'createElement').and.callFake(function(type) {
      var el = originalCreateElement.apply(this, arguments);
      if (type === 'input') {
        Object.defineProperty(el, 'value', {
          set: function(val) {
            log.push(`node.value = ${strify(val)}`);