为了账号安全,请及时绑定邮箱和手机立即绑定

Axios 使用 reactjs 返回混乱的 HTML

Axios 使用 reactjs 返回混乱的 HTML

Cats萌萌 2022-10-21 10:50:50
我试图从另一个文件中获取 html,将其设置为 state 并使用 react 渲染到我的网页。但是,当我在页面上呈现结果时,它会继续以混乱的 HTML 形式出现(html 显示为纯文字)。经过几个小时的测试,看起来响应是作为字符串出现的,这就是它打印单词的原因,但我该如何防止这种情况发生。<script type="text/babel">    class myClass extends React.Component {        constructor() {            super();            this.state = {resultState: ""};        };        componentDidMount() {            axios.post(`mysite.com/page.php`) //in this file it says <h1>green</h1>            .then(res => {                console.log(res.data);                this.setState({ resultState: res.data });            })        }        changeColor = () => {            this.setState({resultState: <h1>blue</h1>});        };        render() {            return (                <div>                {this.state.resultState}                </div>            )         }     }     ReactDOM.render(<myClass />, document.getElementById('mydiv'))</script>它不断返回,<h1>green</h1>而不是一个大字“绿色”。在控制台中它确实显示为 html(代码像文件一样缩进)
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您需要使用 dangerouslySetInnerHTML 来解析 HTML


return (

  <div dangerouslySetInnerHTML={{__html: this.state.resultState}} />

)


查看完整回答
反对 回复 2022-10-21
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你有两种方法:使用 dangerouslySetInnerHTML 作为上面的评论或使用 npm 库,如html-to-reacthttps ://www.npmjs.com/package/html-to-react


查看完整回答
反对 回复 2022-10-21
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

<h1>green</h1>需要编码成&lt;h1&gt;green&lt;/h1&gt;.


然后你就可以使用:


render() {

            return (

                <div>

                {this.state.resultState}

                </div>

            )

         }

(您可以通过将 HTML 标记字符替换为 来对文本进行> < /编码str.replace())


查看完整回答
反对 回复 2022-10-21
  • 3 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信