Voglio rimuovere un componente nel mio codice React Native, proprio come "el.parentNode.removeChild (el)" in JavaScript o "[view removeFromSuperview]" in Objective-C, ma non ho visto alcuna API correlata in documenti React. C'è un modo per farlo?Come rimuovere o smontare un componente in React Native?
risposta
In React Native o in generale in React come ho capito, normalmente non rimuovi i componenti chiamando "remove [..]" ma cambiando il markup del componente, modificando quindi il DOM virtuale.
Ecco un esempio di codice che rimuove un MapView di uno schermo.
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
SwitchIOS,
MapView,
} = React;
var TestMap = React.createClass({
getInitialState() {
return {
showMap: true,
};
},
render: function() {
var map = this.state.showMap ? <MapView style={styles.map}/> : null;
return (
<View style={styles.container}>
<Text style={{marginBottom: 10}}>Remove a view in React Native</Text>
<SwitchIOS
onValueChange={(value) => this.setState({showMap: value})}
style={{marginBottom: 10}}
value={this.state.showMap}
/>
{map}
</View>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 50,
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
map: {
height: 200,
width: 300,
margin: 10,
borderWidth: 1,
borderColor: '#000000',
},
});
AppRegistry.registerComponent('TestMap',() => TestMap);
La parte rilevante dell'essere:
render: function() {
var map = this.state.showMap ? <MapView style={styles.map}/> : null;
return (
<View style={styles.container}>
[..]
{map}
</View>
);
}
Di solito non smontare direttamente i componenti. In React Native, utilizziamo navigator
per montare/smontare i componenti.
Ad esempio, navigator.pop()
"Transizione indietro e smonta la scena corrente".
E ci sono alcuni altri metodi che è possibile utilizzare, consultare il documento: https://facebook.github.io/react-native/docs/navigator.html
Se stai usando zIndex su uno qualsiasi dei vostri punti di vista che si desidera rimuovere, mi dispiace, non funzionerà a tutto a partire da 0.39.0. Vi ritroverete con un brutto guscio vuoto vicino a dove la vostra vista usato per essere
Anche questo metodo var map = this.state.showMap ? <MapView style={styles.map}/> : null;
a volte può funzionare, ma più spesso è necessario qualcosa di un po 'più complesso, in modo da provare questo:
render() {
var cUsers = function() {
if (this.props.somePropety) {
return (<SomeSpecialView/>)
} else {
return null // or something like (<Text>Some other view</Text>)
}
}.bind(this)
return (
<View style={style.container}>
{cUsers()}
</View>
)
}
bind(this)
è importante. Ci sono altri modi per .bind(this)
, anche.
Ehi, ho questo problema esatto. Avete qualche idea su come risolvere questo? Ho una modal fatta con position absolute e zIndex 1200. Quando la modal è terminata, cambio gli stili a cui è passata prima che sia attivata, ma lo sfondo del modal rimane posizionato su tutto lo schermo. Conosci il modo corretto per gestire questo problema? – wuno
- 1. Come posso impedire a React di smontare/rimontare un componente?
- 2. Come riutilizzare il componente React JS in React Native
- 3. React Native Android: come rimuovere "effetto overscroll" di ScrollView
- 4. React-Native - navigazione personalizzata con componente Navigator
- 5. Come ottenere il componente "FameLayout" in React Native?
- 6. programmazione aggiungere un componente in Reagire Native
- 7. Chiavi ListView native React
- 8. setTimeout in React Native
- 9. zIndex in React Native
- 10. Come calcolare la larghezza del testo in un componente TextInput in React Native?
- 11. Come posso inserire un'interruzione di riga in un componente di testo in React Native?
- 12. Componente dell'interfaccia utente nativa di dimensioni dinamiche per React Native
- 13. Componente non esegue il rendering all'interno di NavigatorIOS - React Native
- 14. react native - previsto una classe componente, ottenuto [oggetto oggetto]
- 15. Come passare gli stili attraverso un componente contenitore in React-Native
- 16. Come rilevare un componente React rispetto a un elemento React?
- 17. Animazione backgroundColor in React Native
- 18. React Native Linking SMS
- 19. Visualizzazione di un PDF in React Native
- 20. Come rivelare un componente React su scroll
- 21. Aggiunta azione/interno condivisione in React Native
- 22. Visualizzazione modale in React Native
- 23. Larghezza schermo in React Native
- 24. Nuovo progetto React Native con versione precedente di react native
- 25. React Native Android & Genymotion
- 26. È possibile chiamare una funzione in un componente principale in React Native?
- 27. Rendering dinamico di un componente React in React 0.12
- 28. Collegamento della mappa in React Native
- 29. Node.js: Come serializzare/deserializzare un componente React?
- 30. Ridimensionamento immagine in React Native
Avete campioni di codice? –
@DavidWyly È una situazione molto comune. Non penso che siano necessari campioni di codice. – huimin