function PopperReactMixin(getPopperRootDom, getRefDom, config) {
  require_condition(typeof getPopperRootDom === 'function', '`getPopperRootDom` func is required!')
  require_condition(typeof getRefDom === 'function', '`getRefDom` func is required!')

  PopperMixin.call(this, config)
  Object.keys(mixinPrototype).forEach(k=>this[k]=mixinPrototype[k])
  PopperReactMixinMethods.hookReactLifeCycle.call(this, getPopperRootDom, getRefDom)

  return this
}
this Mixin provide utility method to hook reactjs component lifecycle

@param getPopperRootDom: ()=>HTMLElement, return your popper root HTMLElement when componentDidMount is called
@param getRefDom: ()=>HTMLElement, ref node, the node that popper aligns its pop-up to, see the popperjs doc for more information