@@ -74,7 +74,7 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
7474  arrowNode : ?HTMLElement  =  null ; 
7575
7676  setPopperNode  =  ( popperNode : ?HTMLElement )  =>  { 
77-     if  ( this . popperNode  ===  popperNode )  return ; 
77+     if  ( ! popperNode   ||   this . popperNode  ===  popperNode )  return ; 
7878
7979    safeInvoke ( this . props . innerRef ,  popperNode ) ; 
8080    this . popperNode  =  popperNode ; 
@@ -83,10 +83,7 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
8383  } ; 
8484
8585  setArrowNode  =  ( arrowNode : ?HTMLElement )  =>  { 
86-     if  ( this . arrowNode  ===  arrowNode )  return ; 
8786    this . arrowNode  =  arrowNode ; 
88- 
89-     if  ( ! this . popperInstance )  this . updatePopperInstance ( ) ; 
9087  } ; 
9188
9289  updateStateModifier  =  { 
@@ -192,6 +189,7 @@ export class InnerPopper extends React.Component<PopperProps, PopperState> {
192189  } 
193190
194191  componentWillUnmount ( )  { 
192+     safeInvoke ( this . props . innerRef ,  null ) ; 
195193    this . destroyPopperInstance ( ) ; 
196194  } 
197195
@@ -218,7 +216,9 @@ export default function Popper({ referenceElement, ...props }: PopperProps) {
218216    < ManagerContext . Consumer > 
219217      { ( {  referenceNode } )  =>  ( 
220218        < InnerPopper 
221-           referenceElement = { referenceElement  ? referenceElement  : referenceNode } 
219+           referenceElement = { 
220+             referenceElement  !==  undefined  ? referenceElement  : referenceNode 
221+           } 
222222          { ...props } 
223223        /> 
224224      ) } 
0 commit comments