简体   繁体   English

如何在反应中在innerHTML中设置onclick function?

[英]How to set an onclick function in innerHTML in react?

I wanna call a function inside innerHTML in react我想在innerHTML中调用一个function来响应

my Code is -我的代码是 -

changeLength() {
        console.log("tested Anurag")
        this.refs.changemanager.innerHTML = "<span>" +
            this.state.user.manager.fullname + "</span> <a style={{ cursor: 'pointer' }} onClick={" + this.changeLength12.bind(this) + "}>...</a>";
    }

changeLength12() {
        console.log("tested Anurag1")
        this.refs.changemanager.innerHTML = "<span>" +
            this.state.user.manager.fullname.substring(0, 3) + "</span> <a style={{ cursor: 'pointer' }} onClick={this.changeLength.bind(this)}>...</a>";
    }

my changeLength function is working fine but changeLength12 is not working.我的 changeLength function 工作正常,但 changeLength12 不工作。 So how to make it working?那么如何让它工作呢?

You can try instead something like:您可以尝试类似的方法:

import React, { Component } from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      fullName: "Stackoverflow user"
    };
  }

  changeLength12() {
    console.log(" called from length 12");
  }

  changeLength() {
    console.log(" called from changelength");
  }

  render() {
    return (
      <div className="App">
        <h1>Hello CodeSandbox</h1>
        <span>{this.state.fullName}</span>
        <a
          href="/"
          style={{ cursor: "pointer" }}
          onClick={this.changeLength12.bind(this)}
        >
          ...
        </a>
        <span>{this.state.fullName.substring(0, 3)}</span>
        <a
          href="/"
          style={{ cursor: "pointer" }}
          onClick={this.changeLength.bind(this)}
        >
          ...
        </a>
      </div>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

编辑silent-monad-wfptm

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM