我在我们的项目中使用PageDpwn标记来简化内容输入和代码片段。我已经可以打印出markdown并将其转换为HTML语言。我使用jQuery $.ajax从数据库中检索标记并动态转换它。当然,这并不理想。我想从数据库中打印出直接的超文本标记语言,但当我这样做时,我不得不使用PHP打印函数,它输出的代码片段如下:
<--?php # Code ?-->
这是非常不幸的。因此,我在页面视图中将markdown转换为HTML。
<script>
var id = $('input[name=id]').val();
var html = ''
除了React之外,我还使用了一个名为Prism.js的外部库来突出显示语法。我有一个React组件,可以生成一些示例代码。First render很好。该组件使用其初始属性进行呈现,然后我在componentDidUpdate()中调用Prism.highlightElement();,它也可以很好地突出显示语法。但是,我们已经在React父组件中输入了更改需要生成的代码的内容。当进行更改时,生成的突出显示的代码保持不变。子组件的其他部分没有被语法高亮显示,尽管Prism.js可以很好地更新。因此,React没有重新呈现修改过的DOM似乎是一个问题。
下面是该子组件的简化版本:
class