You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中Handlebars模板报错:Missing helper: "__html:" 如何解决?

问题原因与解决方法

你遇到的错误是因为Handlebars会解析模板里所有的双花括号表达式,dangerouslySetInnerHTML={{ __html: Description }}里的{{ __html: Description }}被Handlebars误认为是要调用名为__html:的助手函数,但你并没有定义这个助手,所以抛出了Missing helper: "__html:"的错误。

下面是两种可行的解决方式:

方式一:使用Handlebars的raw助手阻止解析

raw助手可以让Handlebars跳过对块内内容的解析,把里面的代码原封不动输出给React处理。修改后的模板如下:

const defaultTemplate = `
  ...
  {{#each articles}}
    <div className="article">
      <strong className="article-title">{{ Title }}</strong>
      {{raw}}
      <p dangerouslySetInnerHTML={{ __html: Description }} />
      {{/raw}}
      Read more: <a href={{ Link }}>{{ Link }}</a>
    </div>
    <br />
  {{/each}}
`;

方式二:转义双花括号

在Handlebars中,{{{{会被渲染为{{,}}}}会被渲染为}},所以直接把React属性里的双花括号替换成四花括号即可:

const defaultTemplate = `
  ...
  {{#each articles}}
    <div className="article">
      <strong className="article-title">{{ Title }}</strong>
      <p dangerouslySetInnerHTML={{{{ __html: Description }}}} />
      Read more: <a href={{ Link }}>{{ Link }}</a>
    </div>
    <br />
  {{/each}}
`;

内容的提问来源于stack exchange,提问作者Mark Richman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:15:11