// container component
class HandlerA {

  handleSubmit(event) {
    // do stuff
  }
  
  render() {
    const {
      children // react-router passes your child in here
    } = this.props;
    
    return (
      <form onSubmit={this.handleSubmit}>
        {React.cloneElement(children, {onSubmit: this.handleSubmit})}
      </form>
    )
  }
  
}

// a child to be rendered into ComponentA via routes
class ComponentB {
  render() {
    return (
      <fieldset>
        <input type="text" />
        <button>Submit</button> // The button will still submit the form
      </fieldset>  
    )
  }
}

// a child to be rendered into ComponentA via routes
class ComponentC {
  render() {
    const {onSubmit} = this.props; // we can access the props passed by our parent
    
    return (
      <fieldset>
        <input type="text" />
        <div onClick={onSubmit}> /* Some other fancy thing we want to use to submit */
          Stuff
        </div>
      </fieldset>  
    )
  }
}