Показывать кнопку поиска повтора только тогда, когда пользователь полностью переместился в новую область - PullRequest
1 голос
/ 23 июня 2019

Как я могу показывать кнопку «Вернуть» только тогда, когда пользователь изменил регион? В моем коде сейчас он продолжает мигать при изменении региона, не уверенный, чего не хватает.

Код:

app.js

onregionchange() {
    this.setState({redosearch: !this.state.redosearch })
}

render() {
    const Showredo = ({redosearch }) => redosearch ? <View><Text> redo now <Text></View> : null
    return(
    <View>
    {this.state.redosearch  ? <ShowRedo  redosearch={this.state.redosearch }/> : null}
    <View>
        <MapView
            ref={(map) => (this.map = map)}
            style={styles.map}
            onRegionChange={this.onregionchange}
        >
        </MapView>
    )
}

1 Ответ

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

Есть несколько вещей, которые, как я заметил, могут быть причиной проблемы здесь.Во-первых, похоже, что вы дважды проверяете значение состояния;внутри свойства элемента Showredo и снова внутри возвращаемого значения.во-вторых, в коде есть два открытых тега просмотра и два текстовых тега без закрытия.В-третьих, я не вижу, связана ли функция onregionchange или нет.И, наконец, вы возвращаете два элемента в функции рендеринга (или фактически отсутствует два закрывающих тега представления в конце)

попробуйте изменить свой код на этот, который должен исправить все из них:

onregionchange = () => {
    this.setState({redosearch: !this.state.redosearch })
}

render() {
    const { redosearch } = this.state;
    return([
    <View key="a_key_for_element_1">
        {redosearch ? <View><Text> redo now </Text></View> : null}
    </View>,
    <MapView 
        key="a_key_for_element_2"
        ref={(map) => (this.map = map)}
        style={styles.map}
        onRegionChange={this.onregionchange}
    >
    </MapView>]
    );
}
...