I am using a React boilerplate for a small project: https://github.com/koistya/react-static-boilerplate. This boilerplate renders most HTML server side, but I want to add a few dynamic parts to the client side.
As soon as I render the following component, it breaks on Chrome and Safari:
import React, { Component } from 'react';
class DynamicSomething extends Component {
  constructor(props, context) {
    super(props, context);
    this.state = {
      someValue: "Static"
    };
  }
  componentWillMount() {
    setTimeout(() => {this.setState({someValue: "Dynamic"});}, 1);
  }
  render() {
    return <span>{this.state.someValue}</span>;
  }
}
I get the following error, except in Firefox where it works as intended:
Uncaught TypeError: Failed to execute 'replaceChild' on 'Node': parameter 1 is not of type 'Node'.
(program):36 FIREBASE WARNING: Exception was thrown by user callback. TypeError: Failed to execute 'replaceChild' on 'Node': parameter 1 is not of type 'Node'.
    at TypeError (native)
    at Object.Danger.dangerouslyReplaceNodeWithMarkup (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2808:3), <anonymous>:140:25)
    at Object.ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:1239:3), <anonymous>:71:27)
    at Object.wrapper [as replaceNodeWithMarkupByID] (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:717:3), <anonymous>:66:21)
    at ReactCompositeComponentMixin._replaceNodeWithMarkupByID (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2862:3), <anonymous>:579:31)
    at ReactCompositeComponentMixin._updateRenderedComponent (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2862:3), <anonymous>:571:12)
    at ReactCompositeComponentMixin._performComponentUpdate (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2862:3), <anonymous>:544:10)
    at ReactCompositeComponentMixin.updateComponent (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2862:3), <anonymous>:473:12)
    at wrapper [as updateComponent] (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:717:3), <anonymous>:66:21)
    at ReactCompositeComponentMixin.performUpdateIfNecessary (eval at <anonymous> (http://localhost:3000/app.js?1451913362157:2862:3), <anonymous>:421:12) 
It does work when I call setState directly without the setTimeout or in my actual case a callback function from a Firebase call.
It always works in Firefox.
I'm using "react": "^0.14.0", and "babel": "^5.8.29",.