簡體   English   中英

在流星中轉義html標簽

[英]escaping html tags in meteor react

我有以下反應成分

homeComponent = React.createClass({
    mixins: [ReactMeteorData],
    getMeteorData() {
        return {
            homeData: homeContent.findOne()
        }
    },
    render(){
        let homeData = this.data.homeData;
        return (
            <div className="units-container home-container">
                <h1>ply</h1>
                <p>{homeData.homeCopy}</p>
                <a href="{homeData.downloadLink}" className="btn home-button">Download</a>
            </div>
        )
    }
})

{homeData.homeCopy}返回一個帶有html標簽的字符串。因此,在這種情況下,我們說它返回的是<strong>bold text</strong> not bold text.

我正在使用react-template-helper來同時使用blaze和react,所以我希望可以使用三括號來轉義html,但這是行不通的。 我需要逃避html的反應。

我如何做出反應以從字符串中兌現這些html標簽?

@ mason505指出了正確的方向,但是我認為這需要一些額外的信息。

首先,您必須創建一個函數來解析html:

function escapeHTML(data) {
    return {__html: data}
}

然后,你必須調用與dangerouslySetInnerHTML但只有一個自我封閉的HTML元素,你必須將數據傳遞到dangerouslySetInnerHTML使用escapeHTML功能。 完整的示例是:

function escapeHTML(data) {
    return {__html: data}
}

homeComponent = React.createClass({
    mixins: [ReactMeteorData],
    getMeteorData() {
        return {
            homeData: homeContent.findOne()
        }
    },
    render(){
        let homeData = this.data.homeData;

        return (
            <div className="units-container home-container">
                <h1>ply</h1>
                <p dangerouslySetInnerHTML={escapeHTML(homeData.homeCopy)} />
                <a href={homeData.downloadLink} className="btn home-button">Download</a>
            </div>
        )
    }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM