родительские ошибки теряются при изменении ребенка - PullRequest
0 голосов
/ 29 октября 2018

Я фокусирую div для прослушивания события keydown, и у меня есть обертка, подобная этой:

class Wrapper extends react.Component {
  componentDidMount() {
    this.refs["profilebody"].focus();
    this.refs["profilebody"].addEventListener(
      "keydown",
      this.props.onOverlayKeyDown,
      false
    );
  }

  componentWillUnmount() {
    /// removing even listerner
  }

  render() {
    <div className="modal_container" tabIndex="-1" ref={"profilebody"}>
      {this.props.children}
    </div>;
  }
}

И в родителе говорят, что WrapperParent я меняю детей.

class WrapperParent extends React.component {
  render() {
    return (
      <Wrapper>
        {{
          [`render-a`]: <A />,
          [`render-b`]: <B />
        }}
        [this.state.screen]}
      </Wrapper>
    );
  }
}

ПРИМЕЧАНИЕ: дочерние элементы всегда являются элементом React

Проблема в том, что когда я меняю детей в родителе, фокус переходит на тело вместо того, чтобы оставаться в указанном div.

Как мне сосредоточиться на div?

...