javascript - 更新 state 中数组的状态
问题描述
我想根据所选值更改更新数组的状态。所以我boardStatus
在state
. 现在,当按下第二个 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
函数进行编码?
解决方案
你可以这样做:
handleBoardPress = (id) => {
var id = id.toString();
var boardStatus = [];
for (var i = 1; i <= 3; i++) {
if (i == id) {
boardStatus.push({id: i, status: true});
} else {
boardStatus.push({id: i, status: false});
}
}
this.setState({boardStatus});
}
推荐阅读
- azure-devops - 没有代理注册或您无权查看代理
- html - Angular-Routing 在云中不起作用,但在 localhost
- c++ - 将函数模板转换为模板化函子
- android - 我正在尝试将我的 gradle 28 SDK 升级到 29,但它显示了这个错误
- javascript - 从文本或任何段落中查找日期
- arrays - 如何从问题库中的数组中提取测验应用程序的随机问题?迅速
- python - 如何在 Django ORM 中实现嵌套查询集?
- javascript - 为什么我的弹出确认免责声明框事件侦听器未附加到元素?
- cucumber - 在 4.7.1 Cucumber 更新后使用新的 io.cucumber 包时无法将 StepDef 与功能链接
- uber-api - Server_Token 密钥访问