簡體   English   中英

如何不在渲染 REACT NATIVE 中使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM