调用Section Rendering API无法渲染section所属blocks问题咨询
问题原因
Section Rendering API 本身完全支持渲染section内的blocks,你遇到空输出的核心原因是调用API时没有关联到该section对应的block配置数据:
- 你在主题编辑器中预览时,blocks的配置(你添加的title、text类型block)是保存在当前主题的模板配置文件(
templates/[page_type].json或sections/[section_name].json)里的,所以遍历section.blocks时能拿到对应数据正常渲染。 - 单独调用Section Rendering API时,默认不会自动读取你在主题编辑器中保存的block配置,因此
section.blocks是空数组,循环不会输出内容。
解决方法
你可以通过两种方式解决该问题:
- 调用已绑定配置的section实例
先在目标页面的模板配置中添加该section,添加好需要的所有block并保存,此时该section会生成一个唯一的实例ID,调用API时传入该实例ID而非单纯的section文件名,即可加载到已配置的block数据,正常渲染内容。 - 请求时主动传递block配置
如果你需要动态渲染自定义的block内容,可以在调用Section Rendering API的请求参数中,按照schema规定的格式传入blocks配置数据,API渲染时会自动读取你传递的配置生成section.blocks对象。
内容的提问来源于stack exchange,提问作者ttn_
相关产品推荐
相关产品推荐

