Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 包含reactjs元素的哈希标记的字符串_Javascript_Html_Regex_Coffeescript_Reactjs - Fatal编程技术网

Javascript 包含reactjs元素的哈希标记的字符串

Javascript 包含reactjs元素的哈希标记的字符串,javascript,html,regex,coffeescript,reactjs,Javascript,Html,Regex,Coffeescript,Reactjs,大家好,我正在为我的网站使用coffee脚本和ReactJS。到目前为止,我有一个顺利的发展,直到我遇到字符串和hashtag,然后将hashtag转换为react元素 反应元素 @HashtagLink = React.createClass displayName: 'hashtag link' render: -> React.DOM.a null, href:'/hashtag/' + @props.hashtag @props.hashtag

大家好,我正在为我的网站使用coffee脚本和ReactJS。到目前为止,我有一个顺利的发展,直到我遇到字符串和hashtag,然后将hashtag转换为react元素

反应元素

@HashtagLink = React.createClass
displayName: 'hashtag link' 
  render: ->
    React.DOM.a null,
      href:'/hashtag/' + @props.hashtag
      @props.hashtag
JS函数

@hashTagToLink = (string) ->
  string.replace(/#(\S*)/g,'<a href="http://emilenriquez.com">$1</a>')
示例字符串:我是一个带有要转换为链接的哈希标记的字符串

所需输出:我是一个字符串,希望转换为链接

当前输出:我是一个字符串,希望转换为字符串。

您的@hashTagToLink正在创建适合innerHTML的字符串,而不是创建React元素

如果您想让它返回一个react元素,类似这样的操作应该可以:

@hashTagToLink = (string) ->
  newString = string.split(/#(\S*)/g)

  return React.DOM.div(null,
     newString[0],
     React.DOM.a({
        href: 'http://emilenriquez.com'
     }, newString[1]),
     newString[2],
  )
另一种选择是:React组件还有一个危险的lySetinerHTML方法,因此如果确实需要将字符串作为DOM片段返回。您可以使用:

<div dangerouslySetInnerHTML={ __html: @hashTagToLink() } />