Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays React native中的数组状态更新_Arrays_React Native - Fatal编程技术网

Arrays React native中的数组状态更新

Arrays React native中的数组状态更新,arrays,react-native,Arrays,React Native,我正在尝试更新React native中数组状态的特定元素。例如,我创建了3个模态,其初始可见性为false 在这里,我想用相应的模态页面上的每个按钮独立控制3个模态。因此,我将初始状态变量modalVisible设置为一个长度为3的数组。然后,尝试使用此类命令=>this.setState{modalVisible[2]:true}更新modalVisible的一个元素,该命令最终无法处理以下错误语法错误:。。。意外标记。如果这是不可能的,那么我必须找到同等的方法。例如,在For循环中,我需要

我正在尝试更新React native中数组状态的特定元素。例如,我创建了3个模态,其初始可见性为false

在这里,我想用相应的模态页面上的每个按钮独立控制3个模态。因此,我将初始状态变量modalVisible设置为一个长度为3的数组。然后,尝试使用此类命令=>this.setState{modalVisible[2]:true}更新modalVisible的一个元素,该命令最终无法处理以下错误语法错误:。。。意外标记。如果这是不可能的,那么我必须找到同等的方法。例如,在For循环中,我需要这样写:{this.state.modalVisible{I}},这样代码就可以通过编程知道在哪里定位

下面是我当前的代码


不能在setState调用中直接修改数组索引

您必须首先修改数组,然后将其传递给setState

SetModalVisibleVisibleTh{ 让modalVisible=this.state.modalVisible modalVisible[th]=可见 this.setState{modalVisible:modalVisible} //简写:this.setState{modalVisible}
} 不能在setState调用中直接修改数组索引

您必须首先修改数组,然后将其传递给setState

SetModalVisibleVisibleTh{ 让modalVisible=this.state.modalVisible modalVisible[th]=可见 this.setState{modalVisible:modalVisible} //简写:this.setState{modalVisible}
} toggleExpand是TouchableOpacity on press中的一个函数,数组名为FirstArray

 <TouchableOpacity onPress={() => this.toggleExpand(item)} /> 


 toggleExpand = (item) => {

        this.setState({ refress: !this.state.refress })

        for (i = 0; i < FirstArray.length; i++) {

            if (item.id == FirstArray[i].id) {
                { item.Visible }

                 FirstArray[i].Visible ? FirstArray[i].Visible=false :  
                 FirstArray[i].Visible=true  // modal hide and unhide in button click event 

                console.log('dacdavd',FirstArray[i].Visible);
             }
            else{

                FirstArray[i].Visible=false

            }
        }
    }

toggleExpand是TouchableOpacity on press中的一个函数,数组名为FirstArray

 <TouchableOpacity onPress={() => this.toggleExpand(item)} /> 


 toggleExpand = (item) => {

        this.setState({ refress: !this.state.refress })

        for (i = 0; i < FirstArray.length; i++) {

            if (item.id == FirstArray[i].id) {
                { item.Visible }

                 FirstArray[i].Visible ? FirstArray[i].Visible=false :  
                 FirstArray[i].Visible=true  // modal hide and unhide in button click event 

                console.log('dacdavd',FirstArray[i].Visible);
             }
            else{

                FirstArray[i].Visible=false

            }
        }
    }