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