仅当用户完全移动到新区域时才显示重做搜索按钮
Only show redo search button when user has completely moved to a new area
如何才能仅在用户更改区域时才显示重做按钮?在我的代码中,它会随着区域的更改而不断闪烁,不确定缺少什么。
代码:
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>
)
}
我注意到有几件事可能会导致这里出现问题。首先,看起来您可能正在仔细检查状态值;在 Showredo 元素 属性 内,然后在 return 值内。其次,该代码有两个打开的 View 标签和两个没有关闭的 Text 标签。第三,看不到onregionchange函数是否绑定。最后,您 return 在渲染函数中添加了两个元素(或者实际上最后缺少两个视图关闭标记)
尝试将您的代码更改为这样应该更正所有这些:
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>]
);
}
如何才能仅在用户更改区域时才显示重做按钮?在我的代码中,它会随着区域的更改而不断闪烁,不确定缺少什么。
代码:
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>
)
}
我注意到有几件事可能会导致这里出现问题。首先,看起来您可能正在仔细检查状态值;在 Showredo 元素 属性 内,然后在 return 值内。其次,该代码有两个打开的 View 标签和两个没有关闭的 Text 标签。第三,看不到onregionchange函数是否绑定。最后,您 return 在渲染函数中添加了两个元素(或者实际上最后缺少两个视图关闭标记)
尝试将您的代码更改为这样应该更正所有这些:
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>]
);
}