![](/img/trans.png)
[英]React infinite loop - onClick inside a render calls setState()
[英]How not to infinite loop using setState in render REACT NATIVE
我想刪除列表視圖中的一行,但是當我取回數據時,它不會刪除,因為缺少 setstate
render() {
const { navigation } = this.props;
const deleterow = navigation.getParam('deleterow', '500');
var newData = [...this.state.listViewData];
newData.splice(deleterow,1)
//this.setState({ listViewData: newData });
你可以試試componentwillreceiveprops
添加一個條件然后做一個 setState。 您不想在渲染方法中添加 setState。
不允許從組件的render
方法中執行setState
。
據我了解,您的目標是修改將在您的渲染方法中處理的狀態的listViewData
屬性。 調用 setState 將觸發render()
,因此,正如您在代碼示例中指出的,您希望在渲染方法中修改此屬性,您可以直接分配它並在分配下方處理它,前提是該值僅在render
有效:
render(){
const { navigation } = this.props;
const deleterow = navigation.getParam('deleterow', '500');
var newData = [...this.state.listViewData];
newData.splice(deleterow,1)
this.state.listViewData = newData;
// use this.state.listViewData to populate the items of your view
// ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.