【发布时间】:2020-04-15 15:08:30
【问题描述】:
我想根据所选值更改更新数组的状态。所以我在state 的数组boardStatus 中有3 个元素。现在当按下第二个 TouchableOpacity (handleBoardPress(2)) 时,数组中只有第二个元素的状态,{id:2, status:true} 应该是 true,1 和 3 应该是 false。
我的代码:
class TestApp extends Component {
constructor() {
super()
this.state = {
boardStatus:[
{id:1, status:false},
{id:2, status:true},
{id:3, status:true},
]
};
}
handleBoardPress=(id)=>{
var id = id.toString();
for(i=0, i!=id, i<=3, i++){ // How do I code this part?
this.setState({
boardStatus[i]: false
})
}
}
render() {
return (
<View>
<TouchableOpacity
onPress={()=>this.handleBoardPress(1)}>
<Text>One</Text>
</TouchableOpacity>
<TouchableOpacity
onPress={()=>this.handleBoardPress(2)}>
<Text>Two</Text>
</TouchableOpacity>
<TouchableOpacity
onPress={()=>this.handleBoardPress(3)}>
<Text>Three</Text>
</TouchableOpacity>
</View>
);
}
}
如何编码handleBoardPress 函数?
【问题讨论】:
-
但是当你点击 1st Touchable opacity 而不是 2nd 时,状态会发生什么?如果行为必须与第二个类似,那么下面的答案应该有效,否则,他们不会。
标签: javascript arrays reactjs react-native react-state