Как установить функцию onclick в innerHTML в реагировать? - PullRequest
0 голосов
/ 14 октября 2019

Я хочу вызвать функцию из innerHTML в реакции

мой код -

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>";
    }

моя функция changeLength работает нормально, но changeLength12 не работает. Так как заставить это работать?

1 Ответ

0 голосов
/ 14 октября 2019

Вместо этого вы можете попробовать что-то вроде:

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);

Edit silent-monad-wfptm

...