1
我有一個呈現方法,用於檢查狀態中的數組長度,並在長度> 0時顯示一個按鈕。單擊該按鈕會將狀態數組值更改回[]。React Native按鈕在setState更改後仍然可見但不可觸摸
單擊該按鈕會重置數組值,狀態會發生變化,並重新呈現視圖。但該按鈕在視圖中保持可見,但不可觸摸,位於其他元素後面,我甚至無法檢查調試。它基本上只是一個神器。
很確定我錯過了一個簡單的反應狀態/渲染的概念。有什麼想法嗎?謝謝。
下面是渲染代碼:
render() {
return (
<Container theme={theme} style={{ backgroundColor: '#000000' }}>
<View style={styles.mapView}>
<MapView style={styles.map}
mapType='satellite'
showsUserLocation={true}
showsCompass={true}
followsUserLocation={false}
onLongPress={(e) => this.onMapLongPress(e)}
initialRegion={{
latitude: 34.186129,
longitude: -84.546111,
latitudeDelta: 0.0012,
longitudeDelta: 0.0012,
}}>
{this.state.mapMarkers.map(marker => (
<MapView.Marker
key={marker.key}
coordinate={marker.coordinate}
draggable
centerOffset={{ x: 0, y: -50 }}
onDragEnd={(e) => this.onMarkerEndDrag(e, marker.key)}
>
<TargetMarker distance={this.calculateTargetDistance(marker.coordinate.latitude, marker.coordinate.longitude)} metric={this.state.distanceUnitMetric.toUpperCase()} />
</MapView.Marker>
))}
{ this.state.mapMarkers.length > 0 ? (
<Button style={styles.deleteTargetButton} onPress={() => this.setState({mapMarkers: [] })}>
<Icon name="delete-forever" size={30} color={GOLD_COLOR}/>
</Button>
) : null
}
</MapView>
</View>
</Container>
);
}
謝謝你的想法,但沒有運氣。雖然我猜這種改變不會傷害,並且可能會提供更好的穩定性,所以我會記住這一點。 –
奇怪。你能發佈整個渲染方法嗎? – SoZettaSho
當然可以。只用完整的render()更新了帖子。再次感謝。 –