React js渲染从服务器

时间:2017-03-13 12:15:55

标签: 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>";
}

React JSX

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

   return (
     <div>
         {returnval} 
         <div>
              <span>Some data</span>
         </div>
     </div>
   );
}

以上打印<b>Hello World</b>为文本。

但我希望html标签执行(在这种情况下为粗体)

由于某些原因,我无法在jsx中编写format_string函数吗?

2 个答案:

答案 0 :(得分:1)

您可以使用dangerouslySetInnerHTML属性来呈现您的html字符串。

查看React doc(https://facebook.github.io/react/docs/dom-elements.html)了解更多详情。

答案 1 :(得分:0)

  

由于某些原因,我无法在jsx中编写format_string函数吗?

是的,你其实可以,但我认为你不确定如何;)

只需创建一个辅助函数,它将在 b 标记内返回文本 - 如果定义了内容。

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

const renderContent = (content) =>
  content && <b>{contnet}</b>