Javascript 从服务器返回的React js呈现html字符串

Javascript 从服务器返回的React js呈现html字符串,javascript,php,html,reactjs,ecmascript-6,Javascript,Php,Html,Reactjs,Ecmascript 6,从php我返回这个html PHP $str = "Hello World"; echo json_encode("returnval"=>format_string($str)); function format_string($str){ return "<b>".$str."</b>"; } $str=“你好世界”; echo json_encode(“returnval”=>格式_字符串($str)); 函数格式\u字符串($str){ 返回“$st

从php我返回这个html

PHP

$str = "Hello World";
echo json_encode("returnval"=>format_string($str));

function format_string($str){
  return "<b>".$str."</b>";
}
$str=“你好世界”;
echo json_encode(“returnval”=>格式_字符串($str));
函数格式\u字符串($str){
返回“$str.”;
}
反应JSX

render () => {
   //returnval = html string returned from php

   return (
     <div>
         {returnval} 
         <div>
              <span>Some data</span>
         </div>
     </div>
   );
}
render()=>{
//returnval=从php返回的html字符串
返回(
{returnval}
一些数据
);
}
以上内容以文本形式打印
Hello World

但是我希望执行html标记(在本例中为粗体)


由于某些原因,我无法在jsx中编写
format\u string
函数。是否有办法解决此问题?

您可以使用危险的html属性来呈现html字符串

查看React doc()了解更多详细信息

由于某些原因,我无法在jsx中编写format_string函数。有办法解决这个问题吗

是的,你确实可以,但我想你不知道怎么做;)

只要创建一个helper函数,它将返回b标记内的文本-如果定义了内容

class MyComponent extends Component {
  ...
  render() {
    {renderContent(content)}
    ...
  }
}

const renderContent = (content) =>
  content && <b>{contnet}</b>
类MyComponent扩展组件{
...
render(){
{renderContent(content)}
...
}
}
const renderContent=(content)=>
内容&&{contnet}

您有任何错误吗?@DeividasKaržinauskas无错误。。我只是想把html打印成html,而不是文本。是的,我知道我可以笑。。但实际上,我的
格式\u字符串
是一个非常复杂的函数(也使用很多依赖项)。这只是一个例子。显然,我可以用javascript编写,但我想要一个快速的解决方案。不管怎样谢谢你,简短而合理的回答就是不要这样做。当您危险地将HTML注入React组件时,虚拟DOM无法处理它,因此每次它发生更改时,都必须将其替换而不是更新。你说你的HTML非常复杂,所以可以安全地假设这样的“功能”是性能杀手。。。。。。。。