Как отключить подсказку реагировать на родные элементы из другого компонента - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу вручную закрыть всплывающую подсказку, но на сайтеact-native-elements нет документов.

Итак, я просмотрел код всплывающей подсказки из github и заметил, что у него есть функция toggleTooltip для переключения.К сожалению, я не смог заставить его работать.

Это пример кода для всплывающей подсказки

import { Tooltip } from 'react-native-elements';

render() {
  return (
    <Tooltip 
      ref="tooltip"
      popover={
        <ComponentTest
          toggle={this.refs.tooltip} 
        >
    >
      <Text>Click me</Text>
    </Tooltip>
  );
}

Пример кода для ComponentTest

import { Button } from 'react-native-elements';

toggleOff = () => {
  this.props.toggleTooltip;
}

render() {
  return (
      <Button
        title="hide"
        type="outline"
        onPress={this.toggleOff}
      />
  );
}

И этофункция из tooltip.js, которую я пытаюсь использовать.Полный код всплывающей подсказки можно найти здесь https://github.com/react-native-training/react-native-elements/blob/master/src/tooltip/Tooltip.js

toggleTooltip = () => {
  const { onClose } = this.props;
  this.getElementPosition();
  this.setState(prevState => {
    if (prevState.isVisible && !isIOS) {
      onClose && onClose();
    }

    return { isVisible: !prevState.isVisible };
  });
};

Ответы [ 3 ]

0 голосов
/ 28 мая 2019

В строке 191 из Tooltip.js :

 <TouchableOpacity onPress={this.toggleTooltip}>
     {this.renderContent(true)}
 </TouchableOpacity>

и в определении renderContent: 112 в строке 137 он отображается как поповер: таким образом, где бы вы ни касались в вашемpopover заставит его исчезнуть.Я не знаю, как отключить это поведение, но я все еще хочу знать, можно ли и как можно контролировать видимость всплывающего окна из дочернего элемента всплывающей подсказки.

0 голосов
/ 14 июня 2019

Я новичок в реагировать на нативный и пытался использовать всплывающую подсказку, что я обнаружил, что всякий раз, когда вы щелкаете внутри компонента, который появляется, он перемещается к любой функции нажатия, написанной для этого конкретного компонента, и подсказка не 't закрывается, он также остается подключенным, когда вы переходите на другие страницы, одно из решений - использование response-native-popup-menu.its, которое лучше всего использовать на данный момент в качестве всплывающей подсказки https://www.npmjs.com/package/react-native-popup-menu

0 голосов
/ 06 февраля 2019

Возможно, это глупое решение, но вы пытались использовать this.props.toggleTooltip()?

OH, и ref больше не является строкой, это функция

<Tooltip 
      ref={ref => (this.tooltip = ref)}
      popover={
        <ComponentTest
          toggle={this.tooltip} 
        >
    >
...