MathJax不在动态元素React / Redux中转换TeX

时间:2017-06-16 01:54:54

标签: html reactjs math redux mathjax

作为免责声明,我是MathJAX和TeX语法的新手。

我在尝试转换以下内容时遇到了麻烦:

<div class='challenge__description'>
  The Ackermann function is usually defined as follows
  $$A(m, n) =
   \begin{cases}
   n+1 &amp; \mbox{if } m = 0 \\
   A(m-1, 1) &amp; \mbox{if } m &gt; 0 \mbox{ and } n = 0 \\
   A(m-1, A(m, n-1)) &amp; \mbox{if } m &gt; 0 \mbox{ and } n &gt; 0.
   \end{cases}$$
  Its arguments are never negative and it always terminates...
</div>

我的</body>标记前面有以下内容:

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} });
  MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.querySelector('.challenge__description')]);
</script>

但似乎没有任何事情发生。一切都打印出来,没有任何变换。它工作正常by itself

一个重要的注意事项是我正在尝试在React / Redux中应用MathJax转换。我正在使用challenge__description动态设置dangerouslySetInnerHTML div的内容。

react-mathjax似乎没有解决这个问题,因为它将TeX表示包装在React组件中进行处理。如果我直接使用dangerouslySetInnerHTML设置所有内容,那么TeX代码的<MathJax.Node>组件化是没有意义的,因为标签没有特殊意义。

1 个答案:

答案 0 :(得分:0)

答案最终很简单。在需要使用MathJax进行更新的组件中,只需在生命周期方法中包含MathJax ctx.result = newVar;Config

Queue