Javascript 包含reactjs元素的哈希标记的字符串
大家好,我正在为我的网站使用coffee脚本和ReactJS。到目前为止,我有一个顺利的发展,直到我遇到字符串和hashtag,然后将hashtag转换为react元素 反应元素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
@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() } />