问题描述
这里存在:
我的问题控制器
Rx<GitlabIssue> selectedIssue = new GitlabIssue().obs;
RxList<GitlabIssue> issues = <GitlabIssue>[].obs;
void changeIssueState(GitlabIssueState state) async {
var stateValue = _getGitLabIssueStateValue(state);
bool isInternet = await Utils().isInternet();
if (isInternet) {
var resp = await _issueProvider.changeGitlabIssueState(
projectId,selectedIssue.value.iid,stateValue);
if (resp.statusCode == 200) {
Get.snackbar(
'Issue state changed','Issue is $stateValue',);
var issueIndex = issues.indexOf(selectedIssue.value);
selectedIssue.value.state =
selectedIssue.value.state == 'opened' ? 'closed' : 'opened';
issues[issueIndex] = selectedIssue.value;
gitLabIssueBox.put(projectId,issues);
} else
Get.snackbar(
'Issue state not changed','Issue state was not correctly changed');
} else
print('No connectivity');
}
我的观点
Widget _getButtonStatus() {
return Obx(() {
Color stateColor = _issueController.selectedIssue.value.state == 'closed'
? Colors.green
: Colors.red;
return OutlinedButton(
onPressed: () {
_issueController.selectedIssue.value.state == 'closed'
? _issueController.changeIssueState(GitlabIssueState.reopen)
: _issueController.changeIssueState(GitlabIssueState.close);
},style: OutlinedButton.styleFrom(
//primary: Colors.white,//backgroundColor: Colors.teal,side: BorderSide(color: stateColor,width: 1),),child: Obx(
() => Text(
_issueController.selectedIssue.value.state == 'closed'
? 'Reopen issue'
: 'Close issue',style: TextStyle(color: stateColor),);
});
}
我更新了 selectedIssue.obs 的值,并将小部件放入 Obx() => 函数中。
我不明白为什么我的小部件没有重绘。
奇怪的是,我的 onPressed 函数行为正确;该按钮保持不变,但如果我再次单击它,我的问题状态会正确更改。
请帮帮我!! :D
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)