课程章节介绍
咱们接着来聊酒店查找这个例子。你看,它的默认代理操作界面和之前的航班示例一样,有一个老毛病——输出的原始JSON没有格式化。返回的结果里面,是一个叫 hotels 的数组,每个 hotel 对象里又嵌套着 rooms 数组。这样一层套一层的数据,默认的界面直接就甩出来一长串没结构的JSON,用户根本没办法快速扫一眼、对比不同酒店和房型。
那我们的目标就是像航班示例那样,做一个自定义的 Lightning 类型来美化显示。不过有一点区别要留意:航班那里我们用的是“顶级渲染器”,把整个输出换了个展示方式。而酒店这里,因为输出的主体是一个列表,我们其实更想控制的是列表中每一项的显示模板,而不是把整个列表再包装一次。这就用到集合渲染器了——它让我们可以覆盖列表中每个项目的 UI,但是整体的列表框架还是保留的。
你可以这样理解:顶级渲染器像是把整道菜换了个盘子,而集合渲染器更像是只调整了每块肉怎么切、怎么摆盘,但盛菜的碗还是那个碗。这样用户看到的就不再是乱糟糟的JSON,而是一张张排列整齐的酒店卡片,每个卡片的房间信息都一目了然,方便比较。
好,这一页的重点就是:看到问题,知道要用集合渲染器而不是顶级渲染器,因为我们要改造的是列表里每一个条目的样子。