首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React dangerouslySetInnerHTML onClick不工作

React dangerouslySetInnerHTML onClick不工作
EN

Stack Overflow用户
提问于 2021-11-08 16:24:40
回答 2查看 84关注 0票数 0

嗨,我是一个非常新的反应,只是试图添加由dangerouslySetInnerHTML内的html渲染的onClick

以下是代码示例

代码语言:javascript
复制
import "./styles.css";
import React from "react";

export default function App() {
  const hello = (event) => {
    alert("hello", event.target);
  };
  const displayUrl = () => {
    const str = `<a onClick=${hello} href="#">Test</a>`;
    return <div dangerouslySetInnerHTML={{ __html: str }} />;
    //return `<a href='#'>Test</a>`;
  };

  return (
    <div className="App">
      <React.Fragment>{displayUrl()}</React.Fragment>
    </div>
  );
}

Codesandbox example

请帮助我理解为什么它不工作

EN

回答 2

Stack Overflow用户

发布于 2021-11-08 16:53:17

正如注释中指出的(以及属性名称所指出的),您应该尽可能地避免使用dangerouslySetInnerHTML (我想说的是,在您非常了解React之前,不要使用它)。这里有一个简单的React方法来设置元素上的onClick函数。

您需要正常地使用onClick呈现元素,只需将onClick作为一个属性传递即可。

例如:

代码语言:javascript
复制
import React from "react";
import "./styles.css";

export default function App() {
  const hello = (event) => {
    alert("hello", event.target);
  };

  return (
    <div className="App">
      <button onClick={hello}>Click here</button>
    </div>
  );
}

有了链接(正如您的沙箱和问题所建议的),您可以使用a元素并将href设置为所需的URL。

例如:

代码语言:javascript
复制
import React from "react";
import "./styles.css";

export default function App() {
  const url = "http://example.com"

  return (
    <div className="App">
      <a href={url}>Click here</a>
    </div>
  );
}

url可以来自你想要的任何地方(例如,道具或者从某个地方获取并保持状态)。

票数 0
EN

Stack Overflow用户

发布于 2021-11-08 16:54:44

您正在设置一个onClick侦听器,它在HTML语言中是React。要在单击事件后运行javascript,最好使用<button>元素。

尝试如下所示:

代码语言:javascript
复制
const displayUrl = () => {
  const str = ` <button onclick="${hello}">Click me</button> `
  return <div dangerouslySetInnerHTML={{ __html: str }} />
};

请记住,使用dangerouslySetInnerHTML不是最佳实践。我会听从亨利·伍迪的回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69886744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档