Implementing the "Thinking in React" example from React documentation without using Refs
Actually, I'd worry more about the issue that's bound to happen - your handleChange trying to do everything. I suggest you split them off to two distinct functions, one for the text input, and the other for the checkbox. This is much more maintainable in the long run, as each function is only responsible for one task. This ain't mixed martial arts :P

There's nothing wrong with refs. They're simply for easy access to the DOM elements inside the component. What's probably wrong is when an parent component accesses child refs, or a component exposing its refs to other components. Components should only receive props and state, and emit events with data (like a regular DOM element). You don't mess with how it implements its internals.

Anyways, not much change here:

var SearchBar = React.createClass({
  handleInputChange: function(){
    this.props.onUserInput(this.refs.myInput.value, this.props.inStockOnly);
  },
  handleCheckboxChange: function(){
    this.props.onUserInput(this.props.filterText, this.refs.myCheckbox.value);
  },
  render: function() {
    return (
      &lt;form&gt;
        &lt;input type="text" placeholder="Search..." value={this.props.filterText} onChange={this.handleInputChange} ref="myInput" /&gt;
        &lt;div&gt;
          &lt;label&gt;
            &lt;input type="checkbox" checked={this.props.inStockOnly} onChange={this.handleCheckboxChange} ref="myCheckbox" id="myCheckbox" /&gt;
            &lt;span&gt;Only show products in stock&lt;/span&gt;
          &lt;/label&gt;
        &lt;/div&gt;
      &lt;/form&gt;
    );
  }
});


Now regarding your markup, &lt;p&gt; means paragraph but you have an &lt;input&gt;. I believe &lt;p&gt; was simply used for layouting. &lt;div&gt; is more appropriate. It also appears that your text is a label for the input. I suggest you wrap them in a &lt;label&gt; so clicking the label toggles the box. An additional &lt;span&gt; is recommended since you might want to style the text differently from a text-only label.