我需要单击列表,然后打开一个新的详细信息页面。我到处都在寻找如何执行此操作的示例,但我发现了很多。但是,我的数据结构不同,即使我的代码没有错误,也不会填充详细信息页面。这是我正在使用的东西:
//page 1
child: ListView.builder(
itemCount:
_documents == null ? 0 : _documents.length,
itemBuilder: (BuildContext context, int index) {
return Card(
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
"assets/images/roomfield1.png"),
fit: BoxFit.fitWidth,
alignment: Alignment.topCenter),
color:
Theme.of(context).canvasColor,
),
child: ListTile(
title: Text(_documents[index]
['title']),
subtitle: Text(_documents[index]
["description"]),
trailing: Text(_documents[index]
['citystate']),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
DetailPage(_documents[index])));
})));
},
这是详细信息页面:
// details page
import 'package:flutter/material.dart';
class DetailPage extends StatefulWidget {
DetailPage(_documents, {Key key,}) : super(key: key);
@override
_DetailPageState createState() => _DetailPageState();
}
class _DetailPageState extends State<DetailPage> {
var _documents;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: Text('Details Page'),
),
body: ListView.builder(
itemCount: _documents == null ? 0 : _documents.length,
itemBuilder: (BuildContext context,[index]) {
return ListTile(
title: Text(_documents[index]['title']),
);
}));}}
我的文档使用documentId。我尝试传递ID,然后在流生成器中使用它,但也没有用。我认为我的代码很接近,但是我不知道出什么问题了。我也无法更改数据的结构,因为该格式在整个地方都在使用它。我猜测它可能错过了一些简单的事情,也许是详细信息页面上的构造函数,但我不确定...任何见解都会受到赞赏。
答案 0 :(得分:0)
您在类的顶部创建了一个名为 function updaterecord(id) {
$('#modalupdate').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'update/' + id,
method: 'post',
data: {'countryname' : 'India','sortname' : 'Sort Name', 'phonecode' : '022'};
success: function (res) {
console.log(res);
}
})
});
}
的变量。但是,要检索_documents
类中实际_documents
变量的值,您需要使用DetailPage
。我在下面提供了正确的代码供您使用。
此外,我不知道您为什么在widget.documents
类中使用StatefulWidget
,因为您似乎没有做任何需要状态管理的事情。您可以轻松地将其设置为DetailPage
,但也许还有更多我看不到的代码。
StatelessWidget