我将以下列表存储在变量中:
button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
frame1.setVisible(false);
frame2.setVisible(true);
Utilities.updateToDB("clicked button1");
}
});
我想更新函数中的widget.item.comments = [{comment: comment text, username: username, commentID: 1}];
字段。
我尝试了以下操作,并且我知道comment
是正确的:
id
但是,我收到以下错误:
final comment = widget.item.comments.firstWhere((item) => item.commentID == id);
答案 0 :(得分:3)
这里的问题是,无法像JavaScript映射那样访问Dart映射,即,没有将映射字段添加为对象的getter或属性。
相反,Map
overrides operators。这意味着您将要使用方括号访问地图字段:
final commentID = item['commentID'];
// Applying this to your example:
final comment = widget.item.comments.firstWhere((item) => item['commentID'] == id);