我想在我的React Native代碼中刪除一個組件,就像JavaScript中的「el.parentNode.removeChild(el)」或Objective-C中的「[view removeFromSuperview]」,但我沒有看到任何相關的API在React文檔中。有什麼辦法可以做到嗎?如何刪除或卸載React Native中的組件?
回答
在React Native或通常在React中,正如我所瞭解的,通常不會通過調用'remove [..]'來移除組件,而是通過更改組件的標記來更改虛擬DOM。
下面是一些示例代碼,用於刪除屏幕的MapView。
'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);
相關的部分是:
render: function() {
var map = this.state.showMap ? <MapView style={styles.map}/> : null;
return (
<View style={styles.container}>
[..]
{map}
</View>
);
}
通常我們不直接卸載的組件。 在React Native中,我們使用navigator
來裝載/卸載組件。例如,navigator.pop()
將「過渡並卸載當前場景」。
,這兒有,你可以使用,請檢查文檔的一些其他的方法:如果你對任何要刪除您的視圖中使用zIndex的https://facebook.github.io/react-native/docs/navigator.html
,對不起,它不會在工作全部爲0.39.0。你最終會與附近使用你的看法,其中一個空白醜陋外殼是
而且這種方法 var map = this.state.showMap ? <MapView style={styles.map}/> : null;
有時可以工作,但更多的時候,你需要一些更復雜,所以試試這個:
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)
很重要。還有其他方式.bind(this)
。
嘿,我有這個確切的問題。你有任何線索如何解決這個問題?我有一個使用絕對位置和zIndex 1200製作的模式。當模式完成時,我將它過去的樣式更改爲激活前的樣式,但模式的背景保持在整個屏幕上。你知道處理這個問題的正確方法嗎? – wuno
- 1. 刪除React組件上的事件偵聽器卸載
- 2. 如何刪除或卸載Resharper Plugin
- 3. React Native,「卸載組件上的setState()」警告
- 4. 正確卸載React組件
- 5. React-native:如何刪除列表行?
- 6. React-Native Mobx刪除項目
- 7. 如何閱讀或下載React Native中的文件?
- 8. 如何保留裝載和卸載的React組件的狀態?
- 9. 如何刪除特定的React組件?
- 10. react-native f8組件
- 11. 如何使用作曲家「卸載」或「刪除」插件?
- 12. 如何防止在React組件中卸載?
- 13. 如何刪除卸載的WebApplication?
- 14. 如何使用React Native下載文件?
- 15. 如何在卸載時刪除設置
- 16. 「新的React Native組件
- 17. 如何樣式React Native切換組件?
- 18. 如何創建React Native組件庫?
- 19. 如何修改React-Native textInput組件?
- 20. 從eclipse中卸載和刪除插件
- 21. 子組件如何在React React-Native中進行通信?
- 22. 如何在卸載過程中按條件刪除文件夾?
- 23. 如何在卸載過程中有條件地刪除文件?
- 24. 如何刪除,收回,卸載ActivityApplication有或無的PowerShell
- 25. 如何刪除Wordpress中插件卸載的設置?
- 26. React-Native:如何創建Native UI組件的多個實例?
- 27. 從數組中刪除項目(React-Native + Redux)
- 28. 如何卸載/刪除引擎?
- 29. React Native如何重新加載本機組件?
- 30. 如何在初始加載React Native組件時呈現諾言
你有任何代碼示例? –
@DavidWyly這是一個非常普遍的情況。我不認爲任何代碼示例是必要的。 – huimin